Есть некоторые приложения, которые могут определить, когда они удаляются из Администратора телефона/устройства. Я искал на веб-сайте разработчика Android и не смог найти флаг или приемник, который срабатывает, когда пользователь нажимает на этот флажок рядом с нашим приложением в администраторе телефона/устройства.
Обнаружение удаления приложения из администратора телефона/устройства
Ответы:
В широковещательном приемнике есть функция обратного вызова, которая расширяет класс DeviceAdminReceiver
и выглядит следующим образом. Как только пользователь нажимает кнопку деактивации, эта функция вызывается onDisableRequested
прямо перед отключением приложения от администратора устройства, после того как пользователь нажимает кнопку деактивации, она вызывает onDisabled
. Прежде всего, мы должны вызвать лаунчер (домашний экран), после чего заблокировать устройство. Пользователь не сможет деактивировать, если мы используем эту логику. Если есть более оптимизированный способ, не стесняйтесь делиться/обновлять.
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
Intent homeScreenIntent = new Intent(Intent.ACTION_MAIN);
homeScreenIntent.addCategory(Intent.CATEGORY_HOME);
homeScreenIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(homeScreenIntent);
DevicePolicyManager deviceManger;
deviceManger = (DevicePolicyManager) context.getSystemService(
Context.DEVICE_POLICY_SERVICE);
deviceManger.lockNow();
return context.getString("App won't work if you disable this setting");
}
Администратор устройства получает действие ACTION_DEVICE_ADMIN_DISABLED, когда оно получает отключено пользователем, что можно обработать в onDisabled(Context, Intent). Вы по-прежнему можете использовать привилегированные API-интерфейсы DevicePolicyManager в методе onDisabled, но не после его возврата.