workPro Documentation
Your WorkPro app now has complete download support with proper permission handling:
WRITE_EXTERNAL_STORAGE (Android 9 and below)READ_EXTERNAL_STORAGE (Android 10-12)READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, READ_MEDIA_AUDIO (Android 13+)DOWNLOAD_WITHOUT_NOTIFICATIONHTML/PHP Download Link
↓
WebView Detects
↓
Permission Check
↓
Permission Granted?
├─ YES → Download Starts
└─ NO → Request Permission
↓
User Approves?
├─ YES → Download Starts
└─ NO → Error Message
Android 13-14 (API 33-34):
/Android/data/com.workpro.app/files/Download/
(Accessible via: Settings > Apps > WorkPro > Files)
Android 12 (API 31-32):
/Android/data/com.workpro.app/files/Download/
Android 11 (API 30):
/Android/data/com.workpro.app/files/Download/
Android 10 (API 29):
/Android/data/com.workpro.app/files/Download/
Android 9 (API 28):
/storage/emulated/0/Download/
(Accessible via: Files app > Downloads)
When users install the app, they'll see:
Users can grant or skip. If skipped, they'll be prompted when they click download.
<a href="https://example.com/file.pdf" download="filename.pdf">
Download File
</a>
adb logcat | grep WorkPro
"Download requested: [URL]"
"Starting download from URL: [URL]"
"Download enqueued with ID: [ID]"
"Download started: [filename]"
"Download failed: Invalid download URL"
"Permission denied"
Download doesn't appear
File not found after download
For End Users:
To Access Downloaded Files:
./gradlew clean assembleDebug
# or
./gradlew clean assembleRelease
adb install -r app/build/outputs/apk/debug/workpro_*.apk
./gradlew clean assembleRelease
| Android Version | Min API | Download Path | Permission Needed | Scoped Storage |
|---|---|---|---|---|
| 14 | 34 | App-specific | NO | ✓ Enforced |
| 13 | 33 | App-specific | NO | ✓ Enforced |
| 12 | 31-32 | App-specific | NO | ✓ Enforced |
| 11 | 30 | App-specific | NO | ✓ Enforced |
| 10 | 29 | App-specific | NO | ✓ Enforced |
| 9 | 28 | Public Downloads | YES | ✗ Not enforced |
For download issues, check: