Google Play — Eric's Drop to Phone
Paid Android app. Windows zip stays free. No in-app purchases, no subscriptions. Same product idea as the iPhone App Store listing (Plan B).
The native client lives in src/DropToPhone.Android. Chrome can still open the Windows QR without this app.
You cannot create the Play listing from this repo. Do that in Play Console after identity verification is approved.
Companion docs: Privacy, Support, Charging.
Locked decisions
| Item | Choice |
|---|---|
| Model | Paid Play app, free Windows zip |
| IAP | None |
| Price (change in Play Console if you want) | USD $2.99 |
| Application ID | com.droptophone.app |
| Minimum Android | 10 (API 29) |
| Listing name | Eric's Drop to Phone |
| Default language | English (US) |
| Version | Synced with version.json / iOS (versionName + versionCode = iOS build) |
Build on Windows
Install Android Studio (or at least a current Android SDK + JDK 17).
cd src\DropToPhone.Android
.\gradlew.bat assembleDebug
Sideload app\build\outputs\apk\debug\app-debug.apk while Play Console review is pending. Phone and PC on the same Wi-Fi.
Release / Play upload uses an AAB signed with your upload keystore (droptophone-upload.jks). Copy keystore.properties.example to src/DropToPhone.Android/keystore.properties (gitignored) and fill the passwords, then:
cd src\DropToPhone.Android
.\gradlew.bat bundleRelease
Output: app\build\outputs\bundle\release\app-release.aab.
The pre-commit version bump also updates Android versionName / versionCode so Play stays aligned with iOS.
Ready in this repo
- Application ID
com.droptophone.app - Release signing via local
keystore.properties+ upload JKS -
versionName/versionCodesynced with iOS - Listing art in
docs/graphics/play/ - Listing copy below
- Support + privacy URLs live
- About → Support link
Still you (Play Console)
- Identity verification approved
- Paid merchant account (for $2.99)
- Create the app listing
- First AAB in internal testing (Console). Later builds: GitHub
PLAY_PUBLISH_ENABLED - Data safety form (answers in the next section)
- Prefer real-device screenshots when you have them
Data safety (Play Console)
- Data collected: No
- Data shared: No
- Encryption in transit: LAN HTTP only; no cloud
- Camera: QR scan only
- Nearby devices / Wi-Fi: talk to the Windows app and find
_droptophone._tcp - Photos / files: save incoming drops; send only items you pick
Store listing files (ready to upload)
Generated from the real app icon and UI copy. Folder: docs/graphics/play.
| Play Console field | File | Size |
|---|---|---|
| App icon | docs/graphics/play/icon-512.png |
512×512 PNG |
| Feature graphic | docs/graphics/play/feature-graphic-1024x500.png |
1024×500 PNG |
| Phone screenshot 1 | docs/graphics/play/screenshot-1-setup.png |
1080×1920 |
| Phone screenshot 2 | docs/graphics/play/screenshot-2-drop.png |
1080×1920 |
| Phone screenshot 3 | docs/graphics/play/screenshot-3-save-location.png |
1080×1920 |
| Phone screenshot 4 | docs/graphics/play/screenshot-4-about.png |
1080×1920 |
Regenerate after UI copy changes:
python scripts/generate-play-listing-art.py
Replace the screenshots with captures from a real phone when you have one. Play prefers device shots; these mockups are enough to fill the required slots now.
Store listing text
Short description (80 characters max):
Drop PC files to this phone on Wi-Fi. Share back. No cloud.
Full description:
Eric's Drop to Phone moves photos, videos, PDFs, notes, and other files between your Windows PC and this phone on the same Wi-Fi. Drop several files at once. Share from other apps. No cloud account. No Bluetooth file send.
You need the free Windows app from droptophone.welchsoftware.net on the same network. Drop files on the PC (or right-click Send to), scan the QR once (or connect when this phone finds the PC), then later drops appear here. Photos and video save to Photos. PDFs and documents save to Files. Keep this app open to receive; it does not run a background server.
Large transfers show progress so they do not look frozen. If the PC’s Wi-Fi address changes, this app can find it again on the local network. Guest Wi-Fi that isolates devices will block it.
Chrome can still open the QR without this app. This paid app remembers named devices after one scan, accepts Share, and saves with one tap. Windows stays free.
Support URL: https://droptophone.welchsoftware.net/SUPPORT.html
Privacy URL: https://droptophone.welchsoftware.net/PRIVACY_POLICY.html
Category: Photography (or Tools)
Content rating: Everyone
Screenshots (phone)
- Unlinked home + Get started + Scan / Connect
- Linked, incoming drop, Save / Discard
- Save location (Photos vs Files)
- About (Windows zip, privacy, support, email)
No Windows desktop chrome in the phone frames.
Permissions (why Play asks)
| Permission | Why |
|---|---|
| Camera | Scan the QR from the Windows window |
| Nearby Wi-Fi devices | Find the PC with Bonjour/NSD (_droptophone._tcp) |
| Internet / network state | HTTP to http://{pc-ip}:17890 on the LAN |
| Notifications | Tell you a drop is ready to save |
Gallery save uses MediaStore. Send to PC uses the system photo and document pickers.
CI compiles a debug APK on every push. Production AAB upload on main is Publish Play bundle, gated by repo variables (see below).
GitHub publish (after the listing exists)
Repo variables (Settings → Secrets and variables → Actions → Variables):
| Variable | Value |
|---|---|
PLAY_PUBLISH_ENABLED |
true when you want every main push to upload an AAB |
PLAY_TRACK |
internal (default) or production |
Repo secrets:
| Secret | Value |
|---|---|
ANDROID_KEYSTORE_BASE64 |
PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes("$env:USERPROFILE\droptophone-upload.jks")) |
ANDROID_KEYSTORE_PASSWORD |
store password |
ANDROID_KEY_ALIAS |
usually upload |
ANDROID_KEY_PASSWORD |
key password |
PLAY_SERVICE_ACCOUNT_JSON |
JSON of a Play Console API service account with Release to production / testing on this app |
Google requires the first AAB to be uploaded in Play Console by hand. After that, promote → main can push later builds.
Play Console setup (once): identity verification, paid merchant, create the app, Data safety, listing art, then Setup → API access → link a Google Cloud service account.