Arhn - архитектура программирования

Обнаружение удаления приложения из администратора телефона/устройства

Есть некоторые приложения, которые могут определить, когда они удаляются из Администратора телефона/устройства. Я искал на веб-сайте разработчика Android и не смог найти флаг или приемник, который срабатывает, когда пользователь нажимает на этот флажок рядом с нашим приложением в администраторе телефона/устройства.


Ответы:


1

В широковещательном приемнике есть функция обратного вызова, которая расширяет класс 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");
    }
30.08.2017
  • Ваш вопрос касался обнаружения, когда пользователь удаляет администратора устройства, а не предотвращения этого. Это не отвечает на вопрос. 30.08.2017
  • Кроме того, поскольку пользователи не могут удалить администратора устройства, пользователи никогда не смогут удалить ваше приложение, и они будут вынуждены сбросить настройки своих устройств до заводских. Если вы не хотите плохих отзывов о своем приложении, вы не должны этого делать. 30.08.2017
  • мой вопрос был об удалении приложения обнаружения, и ваш ответ не соответствовал требованиям, потому что вы дали функцию onDisabled (Context, Intent) в качестве ответа, что неверно. Вы должны использовать onDisableRequested, чтобы узнать, удаляются ли они. Тот, который вы сказали, говорит вам, что он был удален (не будет удален). В дополнение к вашему второму комментарию необходимо установить флаг для функции onDisableRequested, чтобы пользователи не могли постоянно удалять удаление, просто проверьте предпочтение, не более того. 31.08.2017

  • 2

    Администратор устройства получает действие ACTION_DEVICE_ADMIN_DISABLED, когда оно получает отключено пользователем, что можно обработать в onDisabled(Context, Intent). Вы по-прежнему можете использовать привилегированные API-интерфейсы DevicePolicyManager в методе onDisabled, но не после его возврата.

    29.08.2017
  • Но я хочу, чтобы он не отключил мое приложение. Если я что-то пишу в onDisabled, то пользователь уже отключил это. В этой функции есть еще одна функция onDisableRequested (контекстный контекст, намерение намерения). Я могу написать предупреждающее сообщение или около того, прежде чем пользователь отключится. Однако, если я заблокирую телефон здесь программно, он все равно продолжится с того же экрана после того, как пользователь разблокирует телефон. Как я могу предотвратить это? 30.08.2017
  • Лучшее, что вы можете сделать, это стереть устройство (сбросить настройки), если пользователь попытается отключить администратора вашего устройства (в onDisabled), это удалит все важные данные, которые вы хотите защитить. Поскольку пользователь в любом случае может стереть устройство, и это приведет к удалению администратора устройства, это лучшее, что вы можете сделать. 30.08.2017
  • Если вам нужны более мощные возможности, такие как предотвращение сброса настроек или предотвращение использования устройства после сброса настроек, вы можете попробовать режим владельца устройства, который необходимо установить при первой настройке устройства. Подробнее о двух режимах в этом моем ответе. 30.08.2017
  • Вместо сброса к заводским настройкам есть другой способ. Пожалуйста, смотрите мой ответ. 30.08.2017
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..