Не удается сбросить блокировку лица программно - PullRequest
2 голосов
/ 03 апреля 2012

Я не уверен, что сталкивался с ошибкой в ​​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);
    }
}

Кому-нибудь удалось сбросить блокировку лица или я сообщу об ошибке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...