【发布时间】:2014-02-28 08:47:32
【问题描述】:
我正在使用 Android 下载管理器来下载文件列表。最近我看到一个崩溃报告说
Unknown java.lang.IllegalArgumentException: Unknown URL content://downloads/my_downloads
后来,我发现原因是因为用户禁用了 Android 下载管理器。我通过使用下面的代码检查它的包名称来检查下载管理器是否被禁用。
int state = this.getPackageManager().getApplicationEnabledSetting("com.android.providers.downloads");
现在,如果下载管理器被禁用,我需要找到一种方法来启用它。我尝试使用清单中的权限设置它的启用状态,但我不断收到安全异常。
this.getPackageManager().setApplicationEnabledSetting("com.android.providers.downloads", PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
所以我认为它可能无法访问,因为它是一个系统应用程序。 (Google Play 应用程序会这样做)。
有没有办法将用户重定向到下载管理器应用程序信息视图?让用户启用它?如果无法以编程方式在运行时启用它。
【问题讨论】:
-
你有答案了吗?
-
@johnsmith 不幸的是没有。我认为您开发的应用程序需要是系统应用程序才能直接访问下载管理器设置。
-
这是你想要的吗? [显示应用信息][1] [1]:stackoverflow.com/a/18873867/1784623
-
我可能已经尝试过这个,但我会试一试,让您知道它是否可以成为解决方案。谢谢。
-
如何检查下载管理器是否已启用?请给我一个例子
标签: android android-package-managers android-download-manager android-settings