Android:以编程方式从设备管理员中删除我的应用程序?
我正试图在我的应用程序中添加一个按钮,以便从设备管理员中删除它,我正在使用下面的代码,但我的应用程序刚刚崩溃 代码:- 点击按钮:-Android:以编程方式从设备管理员中删除我的应用程序?,android,components,device-admin,Android,Components,Device Admin,我正试图在我的应用程序中添加一个按钮,以便从设备管理员中删除它,我正在使用下面的代码,但我的应用程序刚刚崩溃 代码:- 点击按钮:- { ComponentName devAdminReceiver = new ComponentName(this, DemoDeviceAdminReceiver.class); DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLI
{
ComponentName devAdminReceiver = new ComponentName(this, DemoDeviceAdminReceiver.class);
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
dpm.removeActiveAdmin(devAdminReceiver);
}
在上面的代码中,DemoDeviceAdminReceiver是一个扩展DeviceAdminReceiver的类
错误日志:-
10-28 15:26:09.295: E/AndroidRuntime(26101): FATAL EXCEPTION: main
10-28 15:26:09.295: E/AndroidRuntime(26101): java.lang.IllegalArgumentException: Unknown admin: ComponentInfo{com.dragonnis.intellicover/com.dragonnis.intellicover.DemoDeviceAdminReceiver}
10-28 15:26:09.295: E/AndroidRuntime(26101): at android.os.Parcel.readException(Parcel.java:1331)
10-28 15:26:09.295: E/AndroidRuntime(26101): at android.os.Parcel.readException(Parcel.java:1281)
10-28 15:26:09.295: E/AndroidRuntime(26101): at android.app.admin.IDevicePolicyManager$Stub$Proxy.removeActiveAdmin(IDevicePolicyManager.java:2940)
10-28 15:26:09.295: E/AndroidRuntime(26101): at android.app.admin.DevicePolicyManager.removeActiveAdmin(DevicePolicyManager.java:183)
正如你所做的:
DevicePolicyManager mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDPM.removeActiveAdmin(mDeviceAdminReceiver);
但您需要将这些过滤器添加到AndroidManifest.xml中的接收器:
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
<action android:name="android.app.action.DEVICE_ADMIN_DISABLED" />
</intent-filter>
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
return "Admin rights are beeing requested to be disabled for the app called: '" + context.getString(R.string.app_name) + "'.";
}
@凌驾
公共字符序列onDisableRequested(上下文、意图){
return“请求为名为“%”的应用禁用管理员权限“+context.getString(R.string.app_name)+“”;
}
感谢您的快速响应。意图过滤器已存在于AndroidManifest.xml文件中。设备管理员已正常启用,但尝试删除仍会导致崩溃。哦,修复了它。问题在于DeviceAdminReceiver类。我使用一个单独的类来启用设备管理员,但当我试图删除它时,我使用的是另一个DeviceAdminReceiver,它甚至没有启用为设备管理员。我真傻。谢谢您的帮助。@ViliusK如果我的应用程序具有设备管理员权限,我们可以禁用其他应用程序的设备管理员权限吗?@rup35h否。回答如下: