TL;DR 如何在使用时拨打电话Activity.startLockTask()
?
我正在尝试在 Android 设备上设置受限环境,即通常称为“Kiosk 模式”的环境。
官方文档可以在这里找到: https ://developer.android.com/work/cosu.html
这样做的官方方式建议使用Activity.startLockTask。
这可以正常工作,直到您想从您Activity
处于startLockTask()
模式中的其他应用程序中启动其他应用程序。启动的任何活动都不得在新的任务堆栈上启动,否则系统会阻止启动意图,即 no Intent.FLAG_ACTIVITY_NEW_TASK
。
一些应用程序可以刚刚启动,其他应用程序似乎隐式设置此标志,但可以通过使用startActivityForResult(...)
which似乎删除NEW_TASK
标志来解决。对于仍然无法运行的应用程序,我可以编写自己的替换代码。
真正的问题是调用应用程序,它强制执行新的任务堆栈。触发呼叫发起呼叫,不显示呼叫活动,但还会在状态栏中放置呼叫通知(在使用时无法访问startLockTask()
。与其他应用程序相比,呼叫应用程序也是无法访问的应用程序)替换为自定义应用程序...