DevicePolicyManager.isDeviceOwnerApp 方法无法正常工作
DevicePolicyManager.isDeviceOwnerApp Method Not Working Properly
我想将我的应用程序置于固定屏幕模式。我需要用户的许可。
Permission Notice
但我并不总是想向用户显示此声明。
我在 Android 5.0 Api 文档中找到了 setLockTaskPackages() 方法。
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
虽然我的应用程序是设备管理员,但为什么这个方法会出错,我无法通过权限屏幕。
设备管理员与设备所有者不同,实现它有很多步骤。您可以从 official doc
开始研究
我想将我的应用程序置于固定屏幕模式。我需要用户的许可。
Permission Notice
但我并不总是想向用户显示此声明。
我在 Android 5.0 Api 文档中找到了 setLockTaskPackages() 方法。
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
虽然我的应用程序是设备管理员,但为什么这个方法会出错,我无法通过权限屏幕。
设备管理员与设备所有者不同,实现它有很多步骤。您可以从 official doc
开始研究