LocalSend Kotlin
An unofficial, lightweight Kotlin LocalSend client for older Android devices.
mouse233 Connectivity File Transfer
Screenshots
Description
LocalSend Kotlin is an unofficial, lightweight native Android LocalSend client written in Kotlin. This project is not affiliated with or endorsed by the official LocalSend project. It aims to interoperate with the official LocalSend clients and provide secure file transfer on local networks, including older Android devices.
Implemented features:
- LAN device discovery using LocalSend v2 UDP multicast, with an HTTPS scanning fallback and selectable network interfaces.
- Sending and receiving files, folders, media, text, and clipboard content.
- Multi-file queues with progress, cancellation, configurable receive behavior, and history.
- HTTPS, certificate-fingerprint identity verification, optional PIN authentication, and SHA-256 checksums.
- System Default, Simplified Chinese, and English interfaces, plus theme colors, dark mode, device and favorite management, and network and transfer settings.
- Foreground-service transfers with lock-screen support, notifications, and an optional keep-screen-awake mode.
- Android Quick Settings tile for toggling the background transfer service on Android 7.0 (API 24) and later.
- Android system share target for single files, multiple files, and text content.
Compatibility:
- Android 5.0 (API 21) and later.
- Both devices must be connected to the same local network.
- Guest networks, AP/client isolation, multicast filtering, or vendor firewalls may prevent discovery or the TCP connection.
Storage:
- Android 10 and later uses MediaStore to save files to the public Downloads directory by default.
- Android 5.0 through Android 9 uses the Download/LocalSend Kotlin directory by default and requires legacy storage permission.
Current limitations include a less polished transfer queue interface, no browser-link receiving, no multi-threaded transfers, no large-file performance optimizations, and no resumable transfers. Android 4.x is not supported.
This is an Alpha project suitable for early-user testing. When reporting an issue, include the Android version, device model, both client versions, and reproducible steps.
What’s new (0.7.9-alpha)
Preserved completed, failed, and cancelled outgoing transfer states when a later transfer finishes.
Versions
Permissions
What the app asks the system for. Android only grants sensitive access after you confirm it.
- Internet accessSend and receive data over the internet.
- Network stateCheck whether and how the device is connected.
- Wi-Fi stateRead information about the Wi-Fi connection.
- CHANGE_WIFI_MULTICAST_STATE
- Foreground serviceKeep running in the background, visible in the status bar.
- NotificationsShow notifications.
- Prevent sleepingKeep the device from going to sleep.
- Write storageCreate and change files on the device storage.
Show 2 more permissions
- localsendkotlin.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
- Read storageRead files on the device storage.
Comments