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

Still you (Play Console)

Data safety (Play Console)

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)

  1. Unlinked home + Get started + Scan / Connect
  2. Linked, incoming drop, Save / Discard
  3. Save location (Photos vs Files)
  4. 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.