我有一个应用程序,我试图“进入Kiosk模式”,但我只希望它只在一个Activity上发生。在修改了一些控件之后,我提出了Intent.createChooser()
。
我要做的是调用Activity的onCreate()
后,触发Intent.createChooser()
以提示用户将其设置为默认的Home应用程序;这样,我“禁用”主页按钮,因为我已经将我的启动活动编程为直接回到我的Kiosk活动中。
一旦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()
,我尝试用以下内容替换startActivity()
:
startActivityForResult(intent, 1);
但是这只是在没有选择器屏幕弹出的情况下立即调用我的默认应用程序。
答案 0 :(得分:4)
你试过吗
getPackageManager().clearPackagePreferredActivities(getPackageName());
根据How to reset default launcher/home screen replacement?,这会重置首选启动器。也许它也适用于主页按钮。