屏幕指纹设备适配说明更新时间:2024-09-25 20:32:00
一、什么是屏下指纹
小米 8 透明探索版中,我们引入屏下指纹这项新技术,即指纹传感器嵌入屏幕下。
由于是屏下指纹,所以需要出现指纹图标,提示用户指纹传感器的位置,但这样会和部分需要使用指纹验证的业务产生冲突。

二、屏下指纹相关接口
由于各个开发者的指纹验证逻辑和 UI 样式非常不一样,所以系统不打算统一大家的样式,而是会提供相关接口,由各业务组做针对性地适配。
1、是否为屏下指纹设备
// true means FOD project
PRODUCT_PROPERTY_OVERRIDES += ro.hardware.fp.fod=true
2、指纹传感器的位置、大小(每次指纹验证都需要重新获取)
以下是 Android O 的接口:
//location of FOD sensor's top left corner in pixel, the top left corner of screen is (0,0)
//persist.sys.fp.fod.location.X_Y 表示sensor区域左上角的坐标,以pixel为单位,以物理屏幕左上角为(0,0)计算。
persist.sys.fp.fod.location.X_Y = 453,1640
//sensor的大小(单位也是pixel)
persist.sys.fp.fod.size.width_height = 173,173
以下是 Android P 的接口(应谷歌要求,需要加入「vendor」字样)
//location of FOD sensor's top left corner in pixel, the top left corner of screen is (0,0)
// persist.vendor.sys.fp.fod.location.X_Y 表示sensor区域左上角的坐标,以pixel为单位,以物理屏幕左上角为(0,0)计算。
persist.vendor.sys.fp.fod.location.X_Y = 453,1640
//sensor的大小(单位也是pixel)
persist.vendor.sys.fp.fod.size.width_height = 173,173
因为同一款设备,市场上可能会同时存在 Android O 和 Android P 两个版本,所以开发者需要根据 Android 版本调用不同的接口,以获取正确的位置信息。
3、控制指纹图标显示、消失
调用标准的指纹监听接口即可显示指纹图标。
4、指定指纹图标的颜色(黑色或白色)
由于各个业务组的界面不尽相同,我们会提供一个接口,让业务方指定要用「黑色」还是「白色」的指纹图标。
复用原有 flag 中的「0」「1」标志(原flag标志没有使用),0表示黑色,1表示白色。
mFm.authenticate(null, mCancellationSignal, 0, callback, null); // 黑色指纹图标(默认)
mFm.authenticate(null, mCancellationSignal, 1, callback, null); // 白色指纹图标
三、屏下指纹适配建议
1、 UI 避开指纹传感器的位置
业务方可以通过上述接口获取指纹图标的位置和大小,建议控件、键盘等元素都避开那个区域。
2、不建议同时支持密码验证和指纹验证
由于指纹图标会挡住键盘,所以不建议开发者同时支持指纹和密码验证,而是做成互斥的模式,类似微信支付。

3、考虑是否需要调整正确、错误的反馈
如果第三方调用,系统不处理指纹验证正确或错误的反馈,交由开发者自行处理。开发者可以根据自身业务逻辑,考虑是否需要针对屏下指纹调整相关反馈。
四、FAQ
1、有几款机型支持屏下指纹
小米机型中,目前支持屏下指纹的设备为「小米 8 透明探索版」和「小米8 屏幕指纹版」。
2、如何测试
拿到设备后,建议同时测试以下两个版本的效果:
- MIUI 9 稳定版,即出厂自带的版本,截至2018年底仍会是该机型用户的主要版本。
- MIUI 10 开发版或稳定版,后续 MIUI 10 将成为 MIUI 系统的主流,又因为 System UI 的代码架构在MIUI 10有较多调整,所以建议同时覆盖测试。
3、如何联系我们
可以邮件给我们的项目组 miuishell@xiaomi.com,会有同事解答相关疑问。
上一篇:刘海、水滴、挖孔屏安卓9/10适配
下一篇:关于无GPS硬件机型的位置服务适配说明
文档内容是否有帮助?
有帮助
无帮助