是否有可能在Android L上启动另一个第三方应用程序锁定在Kiosk模式?能够在不使用root访问权限的情况下做这样的事情会很棒。但如果不使用root访问权限就无法做到这一点,那对我来说也是一个解决方案。
我已经成功开发了一个应用程序,该应用程序是我设备上的设备所有者,可以使用startLockTask()
方法将自己锁定到自助服务终端模式。
答案 0 :(得分:2)
如果您的应用已经是设备所有者(如您所说),您应该可以通过此应用调用:
DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context.getSystemService(Activity.DEVICE_POLICY_SERVICE);
devicePolicyManager.setLockTaskPackages(new ComponentName(context.getApplicationContext(), YourDeviceOwnerReceiver.class), new String[]{"the.package.you.want.to.allow.to.be.in.kiosk.mode"});
然后,根据您要在Kiosk模式中设置的活动(应该在the.package.you.want.to.allow.to.be.in.kiosk.mode
中),您可以拨打startLockTask()
。
答案 1 :(得分:0)
如果您可以在自助服务终端模式下锁定自己的应用,则可以Intent()
启动另一个应用,其中一些flags
表示您的活动托管意图以继续您的自助服务终端。您还必须使用AndroidManifest中运行的应用程序的启动模式。与singleTop
,singleTask
和singleInstance
混在一起,直到找到你想要的东西。 singleTop
应该是您正在寻找的那个,但很难辨别。
如果所有其他方法都失败了,您可以随时启动您的意图,然后执行“adb kill SystemUI'通过exec("su")
来杀死状态栏,软键和硬键以及导航的事情。根据设备的不同,SystemUI可能会自行重启。你可以使用计时器。肮脏的解决方法,但这就是自助服务终端的全部内容。对于代码,您可以在此处使用答案:exec su inside Android app
希望我帮忙,