DevicePolicyManager.isDeviceOwnerApp方法无法正常工作

4

我想将我的应用程序放入固定屏幕模式。并且我需要用户的许可。

权限通知

但我并不总是想向用户显示此声明。

我在Android 5.0 Api文档中找到了setLockTaskPackages()方法。

Android 5.0 Api

private void provisionOwner() {
    DevicePolicyManager manager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
    ComponentName componentName = DeviceAdminSample.getComponentName(this);

    if(!manager.isAdminActive(componentName)) {
        Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
        startActivityForResult(intent, 0);
        return;
    }

    if (manager.isDeviceOwnerApp(getPackageName())) {
        manager.setLockTaskPackages(componentName, new String [] {getPackageName()});
        startLockTask();
    }
}

我也用这个检查了设备所有者列表;

manager.getActiveAdmins()

我在管理员列表中看到了我的包ID。

这是设置屏幕管理员列表

我的应用程序(教师应用程序)是设备管理员

但是isDeviceOwnerApp(myPackageName)方法返回false

为什么这个方法会返回false,而且我无法通过权限屏幕,尽管我的应用程序是设备管理员。

1个回答

6
设备管理员不同于设备所有者,需要经过多个步骤才能实现。您可以从官方文档开始研究。请注意,保留HTML标记。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接