如何启用Android下载管理器

我使用Android下载管理器下载文件列表。最近我碰到一个崩溃报告说

未知java.lang.IllegalArgumentException:未知的URL内容:// downloads / my_downloads

后来,我想出来,原因是因为用户禁用Android下载管理器。我通过检查下载管理器的包名称和下面的代码来检查下载管理器是否被禁用。

int state = this.getPackageManager().getApplicationEnabledSetting("com.android.providers.downloads");

现在,我需要找到一种方法来启用下载管理器,如果它被禁用。我试图设置它的启用状态与Manifest的权限,但我不断收到安全异常。

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应用程式)。

是否有任何方法将用户重定向到下载管理器应用程序信息视图?让用户启用它吗?如果没有办法在运行时以编程方式启用它。

如果无效,请编辑我的答案

检查下载管理器是否可用:

   int state = this.getPackageManager().getApplicationEnabledSetting("com.android.providers.downloads");

if(state==PackageManager.COMPONENT_ENABLED_STATE_DISABLED||
state==PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER
||state==PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED){

// Cannot download using download manager
}

            else {
                request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
                request.setDescription(fileName);   
                manager.enqueue(request); 
            }

尝试启用下载管理器的解决方案是:

packageName = "com.android.providers.downloads"

try {
    //Open the specific App Info page:
    Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
    intent.setData(Uri.parse("package:" + packageName));
    startActivity(intent);

} catch ( ActivityNotFoundException e ) {
    //e.printStackTrace();

    //Open the generic Apps page:
    Intent intent = new Intent(android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
    startActivity(intent);

}
http://stackoverflow.com/questions/21551538/how-to-enable-android-download-manager

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何启用Android下载管理器