'java.lang.SecurityException: Invalid value for is_public_api: 1
I am trying to use the DownloadManager to download media resources using url. Download is working expected in Android 11 & 12 but throwing error in Android 10 for Realme & Redmi devices.
Here is the error stack
W/System.err: java.lang.SecurityException: Invalid value for is_public_api: 1
at android.os.Parcel.readException(Parcel.java:1694)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:476)
at android.content.ContentResolver.insert(ContentResolver.java:1276)
at android.app.DownloadManager.enqueue(DownloadManager.java:1020)
at com.srju.goblin.utils.DownloadUtils.beginDownloadFromUrl(DownloadUtils.java:69)
Download Utility
public static long beginDownloadFromUrl(Context context, String downloadPath, String destinationPath, String FileName) throws Exception {
Uri uri = Uri.parse(downloadPath);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.allowScanningByMediaScanner();
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setTitle(FileName + "");
request.setVisibleInDownloadsUi(true);
request.setDestinationInExternalPublicDir(DIRECTORY_DOWNLOADS, destinationPath + FileName);
DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
return downloadManager.enqueue(request);
]
Manifest
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
