现在我正在开发Home Launcher应用程序。我想清除默认主启动器的默认值(例如:Samsung Home)。 ie.I想以编程方式显示Settings-> Applications->Manage Application->Samsung Home->clear defaults
。
如何通过代码展示?
先谢谢
答案 0 :(得分: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);
例如,如果Google地图应用程序的软件包名称为com.google.android.apps.maps
,则用它替换THE_APP_PACKAGE_NAME
代码将打开Google的管理应用程序屏幕地图应用程序。
<强>更新强>
PackageManager有一个方法,clearPackagePreferredActivities用于清除默认的通过代码。但是,并不似乎适用于较新的Android版本:https://stackoverflow.com/a/10246711/450534
其他值得一读的帖子:
答案 1 :(得分:0)
只是为了完成图片,获得n#34; THE_APP_PACKAGE_NAME n#34;你可以使用类似的东西:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
ResolveInfo resolveInfo = getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
String packageName = resolveInfo.activityInfo.packageName;