我有一个KindleFire5.1.4版本的Fire操作系统
我将我的应用程序设置为设备管理员,它运行良好(我的应用程序显示了一个小土司,上面写着“是的,我是管理员”)。
问题是调用startocktask根本没有效果:恼人的绿色屏幕锁定对话框无论如何都会出现,而且应用程序没有被锁定。
我的目标是开发一个kiosk应用程序,但现在用户只需拖动状态栏并离开应用程序即可。
有解决办法吗?
这是我做的

@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在出厂重置后就已经设置好了。
如果你的应用不能成为设备所有者,它将无法在没有用户干预的情况下启动StartLocktask。
唯一的方法是根目录设备并获得权限。

10-08 04:33