Ответ 1
На самом деле есть способ, отличный от NFC, и rooting для установки приложения в качестве приложения владельца устройства.
Вы можете использовать инструмент командной строки dpm из adb shell
.
Использование:
usage: dpm [subcommand] [options]
usage: dpm set-device-owner <COMPONENT>
usage: dpm set-profile-owner <COMPONENT> <USER_ID>
dpm set-device-owner: Sets the given component as active admin, and its package as device owner.
dpm set-profile-owner: Sets the given component as active admin and profile owner for an existing user.
ОБНОВЛЕНИЕ: Утилита dpm
действительно проста. Его цель - создать новый файл под названием device_owner.xml
под /data/system/device_owner.xml
, который ссылается на приложения Device/Profile owner.
Платформа Android затем читает этот файл, чтобы проверить, какое приложение рассматривается как владелец устройства или приложение для владельца профиля.
На корневом устройстве, вы действительно можете создать этот файл самостоятельно, но так как инструмент dpm
делает это, вы лучше использовать его (принцип DRY):
Например с помощью команды Runtime.exec()
:
Runtime.getRuntime().exec("dpm set-device-owner com.foo.deviceowner/.DeviceAdminRcvr");
Также обратите внимание, что этот инструмент работает только в том случае, если для пользователя не установлена учетная запись (убедитесь, что учетная запись не установлена в Настройках > Учетные записи) до ее использования.
Источник и дополнительная информация в Инструмент командной оболочки оболочки Android: Диспетчер политик устройств