5

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

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

一旦 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"));

我已经看到帖子说我应该使用startActivityForResult(),并且我尝试将 my 替换startActivity()为以下内容:

startActivityForResult(intent, 1);

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

4

1 回答 1

4

你试过了吗

getPackageManager().clearPackagePreferredActivities(getPackageName());

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

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

于 2013-07-09T07:37:26.100 回答