Kiosk模式和Fire OS - startLockTask无法正常工作

时间:2016-07-06 19:07:26

标签: android amazon kindle-fire kiosk kiosk-mode

我拥有使用Fire OS版本5.1.4的Kindle Fire

我将我的应用程序设置为设备管理员,它运行良好(我的应用程序显示了小吐司说"是的我是管理员" :))

问题是调用startLockTask根本没有效果:无论如何都会出现恼人的绿屏固定对话框而且应用程序没有被锁定。

我的目标是开发一个自助服务终端应用,但是现在用户可以直接拖动状态栏并离开应用..

有任何解决方法吗?

这是我的onCreate

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ComponentName deviceAdmin = new ComponentName(this, KioskSystemEventsReceiver.class);
    DevicePolicyManager mDpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
    if (!mDpm.isAdminActive(deviceAdmin)) {
        Toast.makeText(this, "WARNING: i'm not the device admin", Toast.LENGTH_LONG).show();
        // not shown
    }

    if (mDpm.isDeviceOwnerApp(getPackageName())) {
        mDpm.setLockTaskPackages(deviceAdmin, new String[]{getPackageName()});
    } else {
        Toast.makeText(this, "WARNING: i'm not the device owner", Toast.LENGTH_LONG).show();
        // not shown
    }
    startLockTask();
    [...]

1 个答案:

答案 0 :(得分:2)

我的结论:

您似乎无法将自己的应用设置为设备所有者,因为即使在工厂重置后,Kindle Fire也已经配置完毕。

如果您的应用无法成为设备所有者,则无法在没有用户干预的情况下启动锁定任务。

唯一的方法是根设备并获得权限..