如果手机是在SDK21下,如何让应用程序让用户使用手机的PIN或任何使用KeyGuard的身份验证?
我想要像KeyguardManager#createConfirmDeviceCredentialIntent这样的东西,但在SDK21下。
发布于 2018-01-19 22:46:10
在API21之前没有类似的功能。如果您希望强制锁定设备和解锁用户,则必须实现您自己的设备管理应用程序(或应用程序的组件),并要求用户安装它。然后,您可以调用DevicePolicyManager.lockNow()强制锁定屏幕。使用设备管理框架,您还可以要求用户具有特定的安全密码/PIN要求。
发布于 2018-01-21 15:41:18
你可以使用这个库https://github.com/stfalcon-studio/SmsVerifyCatcher
通过Gradle下载:
compile 'com.github.stfalcon:smsverifycatcher:0.3.1’用法向AndroidManifest.xml添加权限:
Init SmsVerifyCatcher in method like onCreate activity:smsVerifyCatcher = new SmsVerifyCatcher(this, new OnSmsCatchListener<String>() {
@Override
public void onSmsCatch(String message) {
String code = parseCode(message);//Parse verification code
etCode.setText(code);//set code in edit text
//then you can send verification code to server
}
});覆盖活动生命周期方法:
@Override
protected void onStart() {
super.onStart();
smsVerifyCatcher.onStart();
}
@Override
protected void onStop() {
super.onStop();
smsVerifyCatcher.onStop();
}
/**
* need for Android 6 real time permissions
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
smsVerifyCatcher.onRequestPermissionsResult(requestCode, permissions, grantResults);
}您可以设置电话号码过滤器:
smsVerifyCatcher.setPhoneNumberFilter("777");或者通过regexp设置消息过滤器:
smsVerifyCatcher.setFilter("");
https://stackoverflow.com/questions/48222332
复制相似问题