如何以编程方式显示"清除默认值"?

Dev*_*man 3 settings android default clear

现在我正在开发Home Launcher应用程序.我想清除默认主启动器的默认值(例如:Samsung Home).ie.I想以Settings-> Applications->Manage Application->Samsung Home->clear defaults编程方式显示.

如何通过代码显示?

提前致谢

Sid*_*ele 6

注意: 由于此问题仅限于访问"管理应用程序设置"选项,因此我的答案仅涵盖该问题.您必须找到获取实际包名称的方法.

此外,如果想法也是通过代码自动清除默认值,那么就我所知,这是不可能完成的.如果我错了,有人可以纠正我.

话虽这么说,这段代码将从您的应用程序打开特定应用程序的管理应用程序屏幕(必须提供包名称).

Intent showSettings = new Intent();
showSettings.setAction(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uriAppSettings = Uri.fromParts("package", "THE_APP_PACKAGE_NAME", null);
showSettings.setData(uriAppSettings);
startActivity(showSettings);
Run Code Online (Sandbox Code Playgroud)

例如,如果Google地图应用程序的软件包名称为com.google.android.apps.maps,则替换THE_APP_PACKAGE_NAME为该代码,代码将打开Google Maps应用程序的" 管理应用程序"屏幕.

更新:

PackageManager有一个方法,clearPackagePreferredActivities用于清除默认的via代码.但是,这似乎不适用于较新的Android版本:https://stackoverflow.com/a/10246711/450534

其他值得一读的帖子:

  1. /sf/answers/542513121/
  2. https://groups.google.com/forum/?fromgroups=#!topic/android-developers/Rzv8VU-EUAw