问题描述
我正在使用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 (将#修改为@)