Как сделать моего владельца устройства без команды NFC и ADB?

Эй, ребята, у меня есть вопрос, и я искал несколько дней, чтобы найти решение.

У меня есть приложение для Android, которое установлено на 100+ устройств. (Android 5.1.1 API22 и 6.0.1 API 23)

https://developer.android.com/reference/android/app/admin/package-summary.html

Я перебрал все эти ссылки, но не повезло: / Используя устройство PolicyManager, я получаю сообщение об ошибке: XXXXX App не является владельцем устройства. Я знаю, что есть способ получить владельца устройства с помощью команды оболочки (ADB), но я не могу сделать это на всех устройствах по отдельности через USB.

DevicePolicyManager deviceManger = (DevicePolicyManager) Forms.Context.GetSystemService (Context.DevicePolicyService); ComponentName demoDeviceAdmin = new ComponentName (Forms.Context, Java.Lang.Class.FromType (typeof (DeviceAdmin)))); deviceManger.SetGlobalSetting(demoDeviceAdmin, "wifi_device_owner_configs_lockdown", "1");

3 ответа

Решение

Исходный код гласит: "Владелец устройства может быть установлен только на неподготовленном устройстве, если только он не был инициирован" adb ", и в этом случае мы разрешаем это, если с устройством не связана никакая учетная запись".

Если у вас нет настроенных учетных записей, вы можете настроить их программно, используя dpm:

try {
    Runtime.getRuntime().exec("dpm set-device-owner com.example.deviceowner/.MyDeviceAdminReceiver");
} catch (Exception e) {
    Log.e(TAG, "device owner not set");
    Log.e(TAG, e.toString());
    e.printStackTrace();
}

Ссылка: http://florent-dupont.blogspot.fr/2015/01/android-shell-command-dpm-device-policy.html

Есть несколько способов получить владельца устройства Android. В зависимости от того, принадлежит ли вам устройство или его BYOD, вы можете использовать разные методы. В этой таблице Google представлены все возможные способы владения устройством. Вы можете найти это здесь.

Я создал метод MakeOwner() и вызвал в методе onCreate мой, к счастью, он работал хорошо...

 public void MakeOwner(){
      try {
            Runtime.getRuntime().exec("dpm set-device-owner com.exampledemo.parsaniahardik.scanbarcodeqrdemonuts/.BasicDeviceAdminReceiver");
        } catch (Exception e) {
            Log.e(TAG, "device owner not set");
            Log.e(TAG, e.toString());
            e.printStackTrace();
        }
    }
Другие вопросы по тегам