Kiosk 模式和 Fire OS - startLockTask 不工作

Kiosk mode and Fire OS - startLockTask not working

我拥有 Kindle Fire with Fire OS 5.1.4 版

我将我的应用程序设置为设备管理员并且运行良好(我的应用程序显示了小吐司说 "yeah I am the administrator" :))

问题是调用 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();
    [...]

我的结论:

您似乎无法将您的应用设置为设备所有者,因为 Kindle Fire 即使在恢复出厂设置后也始终已配置。

如果您的应用不能成为设备所有者,它将无法在没有用户干预的情况下启动 LockTask。

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