Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何显示';清除默认值';以编程方式?_Android_Settings_Default - Fatal编程技术网

Android 如何显示';清除默认值';以编程方式?

Android 如何显示';清除默认值';以编程方式?,android,settings,default,Android,Settings,Default,现在我正在开发一个家庭启动器应用程序。我想清除默认家庭启动器的默认设置(例如:Samsung Home)。例如,我想以编程方式显示设置->应用程序->管理应用程序->三星主页->清除默认值 如何通过代码显示这一点 提前感谢注意:由于此问题仅限于访问“管理应用程序设置”选项,因此我的回答仅限于此。您必须找到一种获得实际包名的方法 此外,如果想法是通过代码自动清除默认值,那么就我所知,这是不可能做到的。如果我错了,有人可以纠正我 也就是说,这段代码将从您的应用程序打开特定应用程序的管理应用程序屏幕(

现在我正在开发一个家庭启动器应用程序。我想清除默认家庭启动器的默认设置(例如: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;