在 Android 中设置和取消设置默认应用

Wak*_*a02 5 android default android-launcher android-homebutton

我有一个应用程序,我试图用它“进入 Kiosk 模式”,但是我只希望它只发生在一个 Activity 上。在修改了一些控件之后,我想出了Intent.createChooser().

我想要做的是一旦 ActivityonCreate()被调用,触发Intent.createChooser()以提示用户将其设置为默认的 Home 应用程序;这样,我“禁用”了主页按钮,因为在这种情况下,我已将启动活动编程为直接返回到我的信息亭活动。

一旦 Kiosk Activity 通过密码退出到前一个,我想createChooser()再次调用,以便用户可以将我的应用程序“取消设置”为默认的 Home 应用程序,他现在可以继续照常使用 Home 按钮。

问题是,当我打电话时createChooser(),“设置为默认应用程序”复选框没有出现。我如何让它出现?

这是我的调用代码createChooser()

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(Intent.createChooser(intent, "Set as default to enable Kiosk Mode"));
Run Code Online (Sandbox Code Playgroud)

我看过帖子说我应该使用startActivityForResult(),并且我尝试用startActivity()以下内容替换我的:

startActivityForResult(intent, 1);
Run Code Online (Sandbox Code Playgroud)

但这只是立即调用了我的默认应用程序,而没有弹出选择器屏幕。

Jac*_*ler 4

你试过了吗

getPackageManager().clearPackagePreferredActivities(getPackageName());
Run Code Online (Sandbox Code Playgroud)

根据如何重置默认启动器/主屏幕更换?这将重置首选启动器。也许它也适用于主页按钮。

或者,您是否查看过:清除和设置默认家庭应用程序