Я не уверен, что сталкивался с ошибкой в API администратора устройства Android или неправильно ее использую.
Мне нужно сбросить блокировку лица программно. Мое приложение не имеет ничего, кроме активности с кнопкой, обработчик которой onClick сбрасывает пароль устройства.
@Override
public void onClick(View pArg0) {
DevicePolicyManager admin = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
admin.resetPassword("", 0);
}
Все работает нормально, кроме случая, когда включена блокировка лица. В этом случае блокировка не сбрасывается, и я вижу следующую трассировку:
04-03 14: 20: 15.427: E / JavaBinder (200): * Неизученное удаленное исключение!
(Исключения еще не поддерживаются в разных процессах.) 04-03
14: 20: 15.427: E / JavaBinder (200): android.util.AndroidRuntimeException:
Для вызова startActivity () вне контекста Activity требуется
флаг FLAG_ACTIVITY_NEW_TASK. Это действительно то, что вы хотите? 04-03
14: 20: 15.427: E / JavaBinder (200): в
android.app.ContextImpl.startActivity (ContextImpl.java:847) 04-03
14: 20: 15.427: E / JavaBinder (200): в
com.android.internal.widget.LockPatternUtils.deleteGallery (LockPatternUtils.java:459)
04-03 14: 20: 15.427: E / JavaBinder (200): в
com.android.internal.widget.LockPatternUtils.saveLockPassword (LockPatternUtils.java:605)
04-03 14: 20: 15.427: E / JavaBinder (200): в
com.android.internal.widget.LockPatternUtils.saveLockPassword (LockPatternUtils.java:570)
04-03 14: 20: 15.427: E / JavaBinder (200): в
com.android.server.DevicePolicyManagerService.resetPassword (DevicePolicyManagerService.java:1573)
04-03 14: 20: 15.427: E / JavaBinder (200): в
android.app.admin.IDevicePolicyManager $ Stub.onTransact (IDevicePolicyManager.java:428)
04-03 14: 20: 15.427: E / JavaBinder (200): в
android.os.Binder.execTransact (Binder.java:338) 04-03 14: 20: 15.427:
E / JavaBinder (200): at dalvik.system.NativeStart.run (собственный метод)
Я проверил исходный код, похоже, что есть попытка запуска и активности, однако mContext, похоже, не является контекстом активности.
void deleteGallery() {
if(usingBiometricWeak()) {
Intent intent = new Intent().setClassName("com.android.facelock",
"com.android.facelock.SetupFaceLock");
intent.putExtra("deleteGallery", true);
mContext.startActivity(intent);
}
}
Кому-нибудь удалось сбросить блокировку лица или я сообщу об ошибке?