注意: 由于此问题仅限于访问"管理应用程序设置"选项,因此我的答案仅涵盖该问题.您必须找到获取实际包名称的方法.
此外,如果想法也是通过代码自动清除默认值,那么就我所知,这是不可能完成的.如果我错了,有人可以纠正我.
话虽这么说,这段代码将从您的应用程序打开特定应用程序的管理应用程序屏幕(必须提供包名称).
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
其他值得一读的帖子: