我不确定我是否遇到了Android设备管理API中的错误,或者我错误地使用了它。
我需要以编程方式重置面部锁定。我的应用程序除了按钮活动外没有任何内容,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: 从Activity上下文外部调用startActivity()需要 FLAG_ACTIVITY_NEW_TASK标志。这真的是你想要的吗? 04-03 14:20:15.427:E / JavaBinder(200):at android.app.ContextImpl.startActivity(ContextImpl.java:847)04-03 14:20:15.427:E / JavaBinder(200):at com.android.internal.widget.LockPatternUtils.deleteGallery(LockPatternUtils.java:459) 04-03 14:20:15.427:E / JavaBinder(200):at com.android.internal.widget.LockPatternUtils.saveLockPassword(LockPatternUtils.java:605) 04-03 14:20:15.427:E / JavaBinder(200):at com.android.internal.widget.LockPatternUtils.saveLockPassword(LockPatternUtils.java:570) 04-03 14:20:15.427:E / JavaBinder(200):at com.android.server.DevicePolicyManagerService.resetPassword(DevicePolicyManagerService.java:1573) 04-03 14:20:15.427:E / JavaBinder(200):at android.app.admin.IDevicePolicyManager $ Stub.onTransact(IDevicePolicyManager.java:428) 04-03 14:20:15.427:E / JavaBinder(200):at android.os.Binder.execTransact(Binder.java:338)04-03 14:20:15.427: E / JavaBinder(200):at dalvik.system.NativeStart.run(Native Method)
我已检查过源代码,似乎有尝试启动和活动,但mContext似乎不是活动上下文。
void deleteGallery() {
if(usingBiometricWeak()) {
Intent intent = new Intent().setClassName("com.android.facelock",
"com.android.facelock.SetupFaceLock");
intent.putExtra("deleteGallery", true);
mContext.startActivity(intent);
}
}
有没有人成功重置面部锁定,还是应该提交错误?