如何解决DevicePolicyManager引发SecurityException
我正在使用Samsung Knox和设备管理来创建应用程序。 我正在尝试禁用键盘锁,但消息不断出现SecurityException:
Admin ComponentInfo{com.samsung.safedrive/com.samsung.safedrive.data.receiver.AdminReceiver} does not own the profile
请求管理员权限
override fun requestAdminRights() {
val intent = Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
val deviceAdminReceiver = ComponentName(this,AdminReceiver::class.java)
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,deviceAdminReceiver)
intent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,packageName)
startActivityForResult(intent,ADMIN_RIGHTS_REQUEST_CODE)
}
使用政策
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<disable-keyguard-features />
<force-lock />
</uses-policies>
</device-admin>
DeviceAdminReceiver
class AdminReceiver: DeviceAdminReceiver() {
override fun onEnabled(context: Context,intent: Intent) {
super.onEnabled(context,intent)
val devicePolicyManager = context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
val componentName = ComponentName(context,AdminReceiver::class.java)
devicePolicyManager.setKeyguarddisabled(componentName,true)
}
override fun ondisabled(context: Context,intent: Intent) {
super.ondisabled(context,intent)
}
}
清单
<receiver
android:name=".data.receiver.AdminReceiver"
android:description="@string/enterprise_device_admin_description"
android:label="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<Meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin_receiver" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
***
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。