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

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

由于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。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐