无法在 android oreo(API 级别 26)上以设备管理员身份激活应用
Unable to activate app as device admin on android oreo(API level 26)
当我尝试以设备管理员身份激活我的应用程序并单击 激活此设备管理员应用程序 时,我返回到上一个屏幕并且设备管理员未激活。
清单中的接收器:
<receiver
android:name=".MyDeviceAdminReceiver"
android:permission="android.permissions.BIND_DEVICE_ADMIN">
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin_policies" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
接收者class:
public class MyDeviceAdminReceiver extends DeviceAdminReceiver
{
public void onEnabled(@NonNull Context context, @NonNull Intent intent)
{
Log.d("DeviceAdmin", "OnEnabled");
super.onEnabled(context, intent);
SharedPreferences.Editor defaultPrefEditor = PreferenceManager.getDefaultSharedPreferences(context).edit();
defaultPrefEditor.putBoolean(context.getString(R.string.pref_device_admin_status), true);
defaultPrefEditor.apply();
}
@Override
public void onDisabled(@NonNull Context context, @NonNull Intent intent)
{
Log.d("DeviceAdmin", "OnDisabled");
super.onDisabled(context, intent);
SharedPreferences.Editor defaultPrefEditor = PreferenceManager.getDefaultSharedPreferences(context).edit();
defaultPrefEditor.putBoolean(context.getString(R.string.pref_device_admin_status), false);
defaultPrefEditor.apply();
}
}
找到了!
android:permission="android.permissions.BIND_DEVICE_ADMIN"
我写了 permissions
应该是 permission
。
当我尝试以设备管理员身份激活我的应用程序并单击 激活此设备管理员应用程序 时,我返回到上一个屏幕并且设备管理员未激活。
清单中的接收器:
<receiver
android:name=".MyDeviceAdminReceiver"
android:permission="android.permissions.BIND_DEVICE_ADMIN">
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin_policies" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
接收者class:
public class MyDeviceAdminReceiver extends DeviceAdminReceiver
{
public void onEnabled(@NonNull Context context, @NonNull Intent intent)
{
Log.d("DeviceAdmin", "OnEnabled");
super.onEnabled(context, intent);
SharedPreferences.Editor defaultPrefEditor = PreferenceManager.getDefaultSharedPreferences(context).edit();
defaultPrefEditor.putBoolean(context.getString(R.string.pref_device_admin_status), true);
defaultPrefEditor.apply();
}
@Override
public void onDisabled(@NonNull Context context, @NonNull Intent intent)
{
Log.d("DeviceAdmin", "OnDisabled");
super.onDisabled(context, intent);
SharedPreferences.Editor defaultPrefEditor = PreferenceManager.getDefaultSharedPreferences(context).edit();
defaultPrefEditor.putBoolean(context.getString(R.string.pref_device_admin_status), false);
defaultPrefEditor.apply();
}
}
找到了!
android:permission="android.permissions.BIND_DEVICE_ADMIN"
我写了 permissions
应该是 permission
。