Android 如何显示';清除默认值';以编程方式?
现在我正在开发一个家庭启动器应用程序。我想清除默认家庭启动器的默认设置(例如:Samsung Home)。例如,我想以编程方式显示Android 如何显示';清除默认值';以编程方式?,android,settings,default,Android,Settings,Default,现在我正在开发一个家庭启动器应用程序。我想清除默认家庭启动器的默认设置(例如:Samsung Home)。例如,我想以编程方式显示设置->应用程序->管理应用程序->三星主页->清除默认值 如何通过代码显示这一点 提前感谢注意:由于此问题仅限于访问“管理应用程序设置”选项,因此我的回答仅限于此。您必须找到一种获得实际包名的方法 此外,如果想法是通过代码自动清除默认值,那么就我所知,这是不可能做到的。如果我错了,有人可以纠正我 也就是说,这段代码将从您的应用程序打开特定应用程序的管理应用程序屏幕(
设置->应用程序->管理应用程序->三星主页->清除默认值
如何通过代码显示这一点
提前感谢注意:由于此问题仅限于访问“管理应用程序设置”选项,因此我的回答仅限于此。您必须找到一种获得实际包名的方法
此外,如果想法是通过代码自动清除默认值,那么就我所知,这是不可能做到的。如果我错了,有人可以纠正我
也就是说,这段代码将从您的应用程序打开特定应用程序的管理应用程序屏幕(必须提供软件包名称)
例如,如果谷歌地图应用程序的包名为com.Google.android.apps.Maps
,则替换谷歌地图应用程序的包名,代码将打开谷歌地图应用程序的管理应用程序屏幕
更新:
PackageManager有一个方法,用于通过代码清除默认值。但是,这在较新的Android版本中似乎不起作用:
其他值得一读的帖子:
为了完成图片,要获取“应用程序包名称”,youc可以使用以下内容:
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;
您不应该这样做,而是要求用户执行该操作@DevuSomanSee我认为,如果您安装了一个处理此意图的应用程序,操作系统会自动重置默认值,因此,即使在此之后,用户选择了一个应用程序作为默认值,您也可以禁用并启用处理此意图的活动,然后它会再次重置。@DevuSoman:噢。酷。从不需要那个特别的部分,所以我不知道。谢谢
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;