gpt4 book ai didi

android - 如何以编程方式重置默认应用程序,用户以前选择始终打开

转载 作者:行者123 更新时间:2023-11-29 15:04:04 26 4
gpt4 key购买 nike

如何以编程方式重置默认应用程序,哪个用户之前选择始终打开?预期的最终结果是在用户下次查看文件时再次显示应用选择器。

谢谢。

最佳答案

默认情况下,Android 不允许这样做。安全原因等。

但是,存在一个漏洞 - 每次系统识别出添加了可以处理给定 Intent 的新组件时默认重置。

所以,你需要做这样的事情:

public void resetDefault() {
PackageManager manager = getPackageManager();
ComponentName component = new ComponentName("com.example.app", "com.mypackage.Component");
manager.setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
manager.setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}

com.mypackage.Component 是一个虚拟的 Activity,您在 list 中有它,默认情况下未启用。它需要一个 IntentFilter,其中包含您希望成为其默认应用的 Intent,如下所示:

<activity
android:name="Component"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.SOME_ACTION" />
<category android:name="android.intent.category.SOME_CATEGORY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

该方法将启用虚拟组件,并且将通知系统添加了一个新的可能的接收器(例如,当您安装一个新的启动器时也会发生同样的情况)并将重置默认值。该代码将禁用虚拟对象,因此它不会显示在选择器中。

您可能想要检查您的应用程序是否是默认应用程序,以及是否有默认应用程序。参见 this answer有关如何执行此操作的详细信息。

关于android - 如何以编程方式重置默认应用程序,用户以前选择始终打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40264673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com