欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android调用系统指纹设置页面录入指纹

程序员文章站 2022-04-27 19:13:02
在做指纹登录时,有时候会遇到设备并未录入指纹,需要提示用户去开启。 如果需要自动跳转到系统的指纹设置页面,录入指纹,那就需要调用系统组件 由于google加入指纹支持是在6...

在做指纹登录时,有时候会遇到设备并未录入指纹,需要提示用户去开启。

如果需要自动跳转到系统的指纹设置页面,录入指纹,那就需要调用系统组件

由于google加入指纹支持是在6.0,而国内很多厂商很早便加入了指纹支持,所以在这方面碎片化很严重。需要根据不同厂商来做适配。

跳转到Settings页面的Intent:

String pcgName = "com.android.settings";
String clsName = "com.android.settings.Settings";
Intent intent = new Intent();
ComponentName componentName = new ComponentName(pcgName, clsName);
intent.setAction(Intent.ACTION_VIEW);
startActivity(intent);

跳转到指纹页面参考如下:

sony:

String pcgName = "com.android.settings";
String clsName = "com.android.settings.Settings$FingerprintEnrollSuggestionActivity";

oppo:

String pcgName = "com.coloros.fingerprint";
String clsName = "com.coloros.fingerprint.FingerLockActivity";

huawei:

String pcgName = "com.android.settings";
String clsName = "com.android.settings.fingerprint.FingerprintSettingsActivity";

其他机型以后补充:

其中sony貌似使用的标准google sdk,所以页面com.android.settings.fingerprint.FingerprintSettings 跳转会报权限拒绝,可使用上面的clsName跳转到介绍页面去,录入指纹。

要查看不同机型的指纹页面,可在手机上打开相应系统页面,然后调用adb 工具去查看:

adb shell “dumpsys window w|grep name=”获取到当前显示的activity;

在跳转前,请先检查activity是否存在或允许跳转, 否则可能会造成RuntimeException。