Блокировка устройства с помощью DeviceAdminReceiver

Я пытаюсь заблокировать устройство с помощью DeviceAdminReceiver и попытаться включить администрирование следующим образом:

if (!mDPM.isAdminActive(mDeviceAdminSample)) {
  Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
  intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
  intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Additional text explaining why this needs to be added.");   startActivity(intent);
 }

и получаю ошибку примерно следующего содержания:

ОШИБКА/Ошибка (1022): java.lang.SecurityException: нет активного администратора, принадлежащего uid 10045 для политики № 3

пожалуйста, дайте мне несколько решений для кода и как включить разрешение администратора.


person Umayal    schedule 15.12.2010    source источник
comment
Пожалуйста, [перейдите по этой ссылке][1] Надеюсь, это будет вам полезно. [1]. /а>   -  person Caution Continues    schedule 19.11.2012


Ответы (2)


Судя по вашему сообщению об ошибке, вы, возможно, забыли настроить device_admin_sample.xml для запроса политики, которую хотите использовать.

Например, если в вашем AndroidManifest.xml у вас есть следующий код приемника для DeviceAdminSample.

<receiver android:name=".app.DeviceAdminSample"
          android:label="@string/sample_device_admin"
          android:description="@string/sample_device_admin_description"
          android:permission="android.permission.BIND_DEVICE_ADMIN">
    <meta-data android:name="android.app.device_admin"
               android:resource="@xml/device_admin_sample" />
    <intent-filter>
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
    </intent-filter>
</receiver>

Затем убедитесь, что вы также установили свой device_admin_sample.xml в следующий xml, чтобы вы могли использовать каждую из возможностей администратора устройства.

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
  <uses-policies>
    <limit-password />
    <watch-login />
    <reset-password />
    <force-lock />
    <wipe-data />
  </uses-policies>
</device-admin>
person Anton    schedule 25.01.2011
comment
Это нужно root-права? - person Hugo; 30.05.2013
comment
Нет, вам не нужно рутировать телефон Android. - person Anton; 02.06.2013
comment
Да, необходимо нажать OK в диалоговом окне. Вам нужно только спросить разрешения один раз, и с тех пор он помнит. Вот ссылка на документацию администратора устройства Android developer.android.com/ руководство/topics/admin/device-admin.html - person Anton; 04.06.2013
comment
Спасибо за ссылку. На самом деле я хочу решить проблему, связанную с невозможностью подключения службы камеры. Но это не работает. - person Hugo; 05.06.2013
comment
Из того, что я могу сказать, эта ошибка не связана с администрированием устройства. - person Anton; 05.06.2013
comment
Да, прежде чем я думаю, что отключить камеру с помощью администратора устройства, можно перезапустить CameraService. Но я пробовал, это не работает. - person Hugo; 06.06.2013
comment
Можно ли отключить меню настроек..? - person Bvn BI; 09.10.2018

Лучший учебник по администрированию устройств: http://rootfs.wordpress.com/2010/09/09/android-make-your-application-a-device-administrator/

person Syed    schedule 26.07.2011
comment
Скорее самое худшее. Только что проверил. - person Aniket Kapse; 20.03.2014