DevicePolicyManager.isDeviceOwnerApp方法无法正常工作

时间:2019-01-08 08:54:19

标签: java android mobile device-policy-manager

我想将我的应用程序置于固定屏幕模式。我希望获得用户的许可。

Permission Notice

但是我并不总是想向用户显示此语句。

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

Android 5.0 Api's

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。 这是设置屏幕管理员列表 My app(Teacher App) is device admin

但是isDeviceOwnerApp(myPackageName)个方法获得了false

为什么这种方法会出错,尽管我的应用是设备管理员,但我无法通过权限屏幕。

1 个答案:

答案 0 :(得分:3)

设备管理员与设备所有者不同,有许多步骤可以实现它。您可以从official doc

开始研究