gpt4 book ai didi

Android 下载管理器类 : getUriForDownloadedFile return wrong path

转载 作者:行者123 更新时间:2023-11-29 15:39:32 25 4
gpt4 key购买 nike

我使用 DownloadManager 库下载了一个 .apk 文件,并且我有一个用于下载服务的 BroadcastReceiver。这是我在 onRecieve() 中的代码:

  long id = intent.getExtras().getLong(DownloadManager.EXTRA_DOWNLOAD_ID);
DownloadManager dm = (DownloadManager)context.getSystemService(context.DOWNLOAD_SERVICE);

intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(dm.getUriForDownloadedFile(id), "application/vnd.android.package-archive");
context.startActivity(intent);

这里的问题是当我调用 UriForDownloadedFile(id) 有时会返回 file:///storage/emulated/0/Download/example.apk在另一台设备上返回内容://downloads/all_downloads/183

我无法使用 (content://downloads/all_downloads/183) 路径安装 apk

最佳答案

您知道 DownloadManager 下载文件的位置,因为您是告诉它在哪里下载文件的人。因此,在 Android 6.0 和更旧的设备上摆脱 getUriForDownloadedFile(id),并使用 Uri.fromFile() 作为您告诉的 File DownloadManager 将文件下载到。

请注意,在 Android 7.0+ 上,一旦您的 targetSdkVersion 达到 24 或更高,您必须为此使用 content Uri。幸运的是,安装程序知道如何在 Android 7.0 及更高版本上处理 content 方案。

关于Android 下载管理器类 : getUriForDownloadedFile return wrong path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43324376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com