sun*_*nil 7 directory android store download-manager file-uri
我正在尝试使用 DownloadManager 将下载的文件存储到由 android 分配的 app/s 文件目录中。为此,我使用以下代码
downloadManager=(DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse(link);
DownloadManager.Request request= new DownloadManager.Request(uri);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setVisibleInDownloadsUi(false);
request.setTitle(fileName);
File file = ctx.getFilesDir();
Uri myPath=Uri.fromFile(file);
request.setDestinationUri(myPath);
Long reference= downloadManager.enqueue(request);
Toast.makeText(DownloadActivity.this,"Downloading Started",Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
通过使用此代码,我收到以下错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.puranepaper.PuranePaper, PID: 18263
java.lang.SecurityException: Unsupported path /data/data/com.puranepaper.PuranePaper/files
at android.os.Parcel.readException(Parcel.java:2005)
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:1552)
at android.app.DownloadManager.enqueue(DownloadManager.java:1163)
at com.puranepaper.PuranePaper.DownloadActivity$1.onClick(DownloadActivity.java:92)
at android.view.View.performClick(View.java:6310)
at android.view.View$PerformClick.run(View.java:24970)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:171)
at android.app.ActivityThread.main(ActivityThread.java:6654)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Run Code Online (Sandbox Code Playgroud)
我如何删除“不支持的路径”错误以及我在此代码中做错了什么
can*_*nel -1
以“file://”启动 myPath
request.setDestinationUri("file://" + myPath);
这对我有用:
public void downloadFile(String address, String destination) {
///// Baja el archivo a la carpeta indicada.
Uri uri = Uri.parse(address);
String Nombre = address.substring(address.lastIndexOf('/') + 1);
DownloadManager.Request request = new DownloadManager.Request(uri);
// request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI); // Solo WiFi.
request.setDestinationUri(Uri.parse("file://" + Environment.getExternalStorageDirectory() + destination + "/" + Nombre));
// Bajada.
DownloadManager downloadmanager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
downloadmanager.enqueue(request);
}
Run Code Online (Sandbox Code Playgroud)
downloadFile(" http://example.com/myfile.jpg ", "/mydirectory")
| 归档时间: |
|
| 查看次数: |
1836 次 |
| 最近记录: |