Я использую Device Policy Manager в своем приложении для Android, и у меня проблема с сотовыми устройствами. При попытке вызвать resetPassword я получаю исключение. Это не относится к Froyo или Gingerbread, так как оба работают нормально.
Ошибка:
java.lang.RuntimeException: Невозможно запустить приемник Package.Name.Test: java.lang.SecurityException: Отказ в разрешении: запись com.android.providers.settings.SettingsProvider uri content: // settings / secure from pid = x , uid = y требуется android.permission.WRITE_SETTINGS
Мой код Android выглядит следующим образом:
DevicePolicyManager mDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
if ((mDPM.getActiveAdmins() != null) && (mDPM.isAdminActive(new ComponentName(context, DeviceAdmin.class)))) {
mDPM.resetPassword(extra, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
mDPM.lockNow();
} else {
Log.d(TAG, "Could not lock because device admin not enabled");
}
Проблема возникает по адресу:
mDPM.resetPassword(extra, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
Мой Device_Admin.xml:
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<force-lock />
<wipe-data />
<reset-password />
</uses-policies>
</device-admin>
Как я уже говорил, администратор устройства отлично работает на устройствах Froyo и Gingerbread, хотя у меня действительно есть некоторые проблемы с пользователями, использующими разные защитные ключи, например, Droid X и HTC Sense. Эта проблема со временем. Когда я вызываю lockNow, устройство выключит экран, но HTC Sense или MotoBlur фактически не заблокируют клавиатуру до времени, которое было установлено в меню «Настройки», «Безопасность», «Блокировка телефона после».
Любая помощь будет потрясающей! Я только недавно приобрел сотовый планшет при вводе-выводе и еще не тестировал приложение на этом устройстве, но я вижу ошибки на веб-сайте маркета для пользователей с Xoom под управлением 3.0. Еще не видел ни одного 3.1 устройства.