Как сделать моего владельца устройства без команды 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();
}
}