# PairDrop for Android: the same local file transfer, with a share sheet instead of a browser

> PairDrop for Android is a native client for the browser based PairDrop service, letting a phone send files to nearby machines over WebRTC without an account. Its value is in Android integration rather than new protocol work, and it inherits every dependency PairDrop itself has.

**fm-sys/pairdrop-android** — Android client for local file sharing via https://pairdrop.net and self-hosted snapdrop 

- Repository: https://github.com/fm-sys/pairdrop-android
- Website: https://play.google.com/store/apps/details?id=com.fmsys.snapdrop
- Stars: 1,081 · Forks: 81
- Language: Java
- License: GPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/fm-sys-pairdrop-android

## A client for a service, not a file transfer protocol of its own

PairDrop for Android is an Android client for the free and open source local file sharing solution at pairdrop.net. That framing is the most important fact about the project, and it should be read carefully.

PairDrop itself is a local file sharing solution which completely works in your browser. The README describes it as a bit like Apple's Airdrop but not only for Apple devices, with Windows, Linux, Android, iPhone and Mac all covered. The Android app does not implement a new transport. It is a native front end for an existing service.

The problem the project addresses is stated in the reader's own voice in the tip box at the top of the README. You just need to quickly transfer a file from your phone to the PC. USB is old fashioned, Bluetooth is too much cumbersome and slow, and e-mail means writing yourself another email. The app is the fourth option.

The stated reason to prefer the app over the browser is integration rather than capability. The documentation says that even though PairDrop would theoretically work fully in the browser and you would not have to install anything, you will prefer this app if you use PairDrop more often in daily life. Thanks to integration into the Android operating system, files are sent even faster, and directly from within other apps you can select PairDrop to share with.

That is an honest description of where the value sits. The mechanism is inherited. The contribution is the Android integration around it.

## What the app adds: the share sheet, and a peer list you can reach instantly

Two Android specific behaviours are described in the README, and they are the entire feature delta over opening the site in a browser.

The first is the share sheet. Directly from within other apps you can select PairDrop to share with, which is the standard Android intent mechanism for offering a file to another application. The difference from a browser is that the browser is a destination you have to navigate to and then hand the file over, while the share sheet is a destination the OS proposes for you in the flow you are already in.

The second is the argument about speed, which comes from the same integration: fewer steps between the file and the transfer, and no browser tab to switch to.

The project also links the surrounding software, which tells you what this app is and is not. There is a Firefox add-on for desktop platforms, a serverless snapdrop desktop app, and PairDrop itself in the browser.

The alternatives list is more useful still. It names Apple Airdrop with an unofficial open source implementation for Linux, Google Nearby Share for Android, Chrome OS and Windows with an unofficial macOS client, Windows Nearby Sharing for Windows only with a free software implementation for Android, and Link to Windows, which mounts the phone as storage in the Windows file explorer.

Read that list and the positioning is clear. PairDrop and this app are the cross platform option, and the app is the Android shaped part of it.

## Getting the app, and where the package identifiers come from

The app is published in two places, and the identifiers differ in a way that catches people out.

It is available on Google Play and on F-Droid, and both listings use the package name com.fmsys.snapdrop, with the Play Store URL for the app being play.google.com/store/apps/details?id=com.fmsys.snapdrop. The repository itself was renamed to pairdrop-android, and the README badge for the latest release still points at the fm-sys/snapdrop-android path, as do the Crowdin project and the fund and issue links. The application id retained the old snapdrop name.

For an F-Droid user, that identifier is what matters, since the package id is how the build is identified and updated. The repository listing shows the fastlane directory holding the store metadata, including the feature graphic and the phone screenshots under the en-US locale, so the listing content is managed as files in the repository rather than uploaded by hand.

The other distribution channel is Crowdin, and it comes with a specific instruction. Translations are managed through Crowdin, and if your language does not yet exist and you want to contribute, you should open an issue first so it can be discussed whether it is worth maintaining translations for that language. The reason is given in the next paragraph.

Please do not change any translations manually in the .xml resource files. Nothing bad would happen, but those changes would be deleted or overwritten automatically by Crowdin. If you add or change resource strings in a pull request, Crowdin automatically takes care of all related translations. The repository confirms this with a translation-validation-bot directory and a crowdin.yml file at the root, so a pull request that edits a translated string directly is caught rather than silently reverted.

## The build system, and what the repository layout says about the app

The repository is a standard Gradle Android project. The root holds build.gradle, settings.gradle, gradle.properties, the gradlew and gradlew.bat wrappers, the gradle directory, checkstyle.xml, suppressions.xml, a .deepsource.toml for static analysis, a .idea directory, the app/ module, the fastlane/ directory, FUNDING.md, PRIVACY.md, LICENSE, and the translation-validation-bot directory.

Two of those files carry information about how the project treats itself. The PRIVACY.md file is a signal, and a meaningful one for an app whose entire purpose is moving files between devices without an account. The checkstyle.xml and suppressions.xml pair, with a .deepsource.toml, means the Java code is style checked and statically analysed, and the suppressions file exists to record the exceptions deliberately granted.

The app module is where the application code lives, and the launcher icon referenced in the README sits at app/src/main/res/mipmap-xxxhdpi/ic_launcher.png, which tells you the resource layout is a conventional Android one with the icon in the mipmap directory.

The build workflow is visible in the CI badge, which points at an APK Build workflow on the master branch, and the release badge points at the latest release by date. So the project produces an APK in continuous integration and publishes releases from the same branch.

None of this is documented in prose, which is normal, but it is the part of the repository you can read directly, and it tells you the project is a conventional Android app with a localised, analysed, continuously built codebase rather than a script or a WebView wrapper.

## Releases, and the gap between the tags and the commits

The release list is short and the tags are older than the work. The newest listed release is v2.3.1, described as a security update, dated 2025-02-11. Before it, v2.3.0 is a feature release from 2024-10-25, and v2.2.2 is a feature release from 2023-05-30.

The last push to the repository was on 2026-10-19, so the code is moving while the tags lag. That is worth understanding before you make a decision about the app, because it changes what the release list tells you. The tags here are not a version history of the codebase in the ordinary sense, they are the store publishing points.

That matters because the Play Store and F-Droid are the distribution channels. A user installs from a store, and the store serves the version the maintainer uploaded. So for an end user, the effective currency of the app is the store entry, not the tip of the master branch. For a developer reading the repository, the tips are where the current work is.

The release note for v2.3.1 being a security update is also a reminder that this app handles network connections to peer devices. Whatever the current state of the security posture, the fact that a security release was needed at all is the signal to check the version you install, and to prefer a build newer than v2.3.1 if one is available in your store.

There is also an uptime status page badge for the PairDrop service itself, hosted on Uptime Robot, which points at a distinction worth keeping: the service and the client are separate things that can fail separately.

## Contributing, and the boundary the project draws around itself

The contributing section is short and has one large idea in it. PairDrop for Android would like to become a community project, and the author invites participation through issues and pull requests and welcomes bug reports. But there is a boundary, and it is stated firmly: this is not the right place to report bugs regarding the Pairdrop website, which occur independently of this app.

That sentence is the clearest statement of the architecture. A bug in the service is not a bug in the client, and a user who reports a server side problem here will be redirected. For a contributor, that means you have to know which half you are working on before you start.

The development guidance is practical. Fork the repo and start coding. If you plan to implement larger changes, tell them in the issue tracker before hacking on the feature.

There is a funding file, and the README points to it with a line about how to support the app and the PairDrop community. The project also states that as an open source project it has no commercial interests, which for a file sharing app is a claim worth noting given that the service and the client are separate deployments.

The licence is GPL-3.0, with the badge pointing at the LICENSE file in the repository. For an app you install on a personal phone that has no practical consequence. For anyone who wants to fork it into a different product, the copyleft terms are the thing to read before you start.

## Conclusion

PairDrop for Android fits a person who moves files between a phone and a nearby computer several times a week and wants the transfer to appear in the Android share sheet, and it fits an organisation that wants file transfer without an account, an upload or a cloud service in the middle. It does not fit a team that needs a server side deployment with policies, quotas or audit, and it does not fit a user who needs transfer to work with no network at all, because the peers still have to find each other. Check three things before you adopt it. Check which PairDrop instance you are pointed at, since the app is described as a client for pairdrop.net and for self hosted snapdrop, and the service you connect to is a separate deployment with its own configuration. Check the Play Store listing versus F-Droid, since both are published under the package name com.fmsys.snapdrop, and the project also asks that you use a translated build from Crowdin rather than editing the resource strings yourself. And check the release history, because the newest tagged release listed is v2.3.1 from 2025-02-11 while the last push was on 2026-10-19, so the app is still changing even though the tags lag. The license is GPL-3.0.

## FAQ

### Where can I download PairDrop for Android?

It is published on Google Play and on F-Droid, both under the package name com.fmsys.snapdrop. The project also states that the app is a client for pairdrop.net and for self hosted snapdrop instances.

### What is the difference between PairDrop for Android and the PairDrop website?

PairDrop works entirely in the browser with nothing to install, while the Android app adds operating system integration: it appears in the share sheet so you can share files to it from other apps, and the project says files are sent even faster that way. The transport itself is unchanged.

### How do I contribute a translation to PairDrop for Android?

Translations are managed through Crowdin. If your language does not exist yet, open an issue first so it can be discussed whether it is worth maintaining that language. Do not edit the .xml resource files directly, because Crowdin will delete or overwrite those changes.

### Where should I report a bug, the app or the PairDrop website?

Bugs in the PairDrop website are not to be reported in this repository, since they occur independently of the app. App bugs and feature requests go in this repository's issue tracker.

### What license is PairDrop for Android released under?

GPL-3.0, with the LICENSE file at the root of the repository. The newest listed release is v2.3.1, a security update from 2025-02-11, and the last push was on 2026-10-19.

## Sources

- [fm-sys/pairdrop-android on GitHub](https://github.com/fm-sys/pairdrop-android)
- [License: GPL-3.0](https://github.com/fm-sys/pairdrop-android/blob/master/LICENSE)
- [Project website](https://play.google.com/store/apps/details?id=com.fmsys.snapdrop)
- [README](https://github.com/fm-sys/pairdrop-android/blob/master/README.md)
- [Releases](https://github.com/fm-sys/pairdrop-android/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/fm-sys-pairdrop-android
