小米开发平台屏幕指纹设备适配说明
1. 什么是屏下指纹
小米 8 透明探索版中,我们引入屏下指纹这项新技术,即指纹传感器嵌入屏幕下。
由于是屏下指纹,所以需要出现指纹图标,提示用户指纹传感器的位置,但这样会和部分需要使用指纹验证的业务产生冲突。
2. 屏下指纹相关接口
由于各个开发者的指纹验证逻辑和 UI 样式非常不一样,所以系统不打算统一大家的样式,而是会提供相关接口,由各业务组做针对性地适配。
2.1. 是否为屏下指纹设备
// true means FOD project
PRODUCT_PROPERTY_OVERRIDES += ro.hardware.fp.fod=true
2.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 版本调用不同的接口,以获取正确的位置信息。
2.3. 控制指纹图标显示、消失
调用标准的指纹监听接口即可显示指纹图标。
2.4. 指定指纹图标的颜色(黑色或白色)
由于各个业务组的界面不尽相同,我们会提供一个接口,让业务方指定要用「黑色」还是「白色」的指纹图标。
复用原有 flag 中的「0」「1」标志(原flag标志没有使用),0表示黑色,1表示白色。
mFm.authenticate(null, mCancellationSignal, 0, callback, null); // 黑色指纹图标(默认)
mFm.authenticate(null, mCancellationSignal, 1, callback, null); // 白色指纹图标
3. 屏下指纹适配建议
3.1. UI 避开指纹传感器的位置
业务方可以通过上述接口获取指纹图标的位置和大小,建议控件、键网页转APP盘等元素都避开那个区域。
3.2. 不建议同时支持密码验证和指纹验证
由于指纹图标会挡住键盘,所以不建议开发者同时支持指纹和密码验证,而是做成互斥的模式,类似微信支付。
3.3. 考虑是否需要调整正确、错误的反馈
如果第三方调用生成app页面,系统不处理指纹验证正确或错误的反馈,交由开发者自行处理。开发者可以根据自身业务逻辑,考虑是否需要针对屏下指纹调整相关反馈。
4. FAQ
4.1. 有几款机型支持屏下指纹
小米机型中,目前支持屏下指纹的设备为「小米 8 透明探索版」和「小米8 屏幕指纹版」。
4.2. 如何测试
拿到设备后,建议同时测试以下两个版本的效果:
- MIUI 9 稳定版,即出厂自带的版本,截至2018年底仍会是该机型用户的主要版本。
- MIUI 10 开发版或稳定版,后续 MIUI 10 将成为 MIUI 系统的主流,又因为 System UI 的代码架构在MIUI 10有较多调整,所以建议同时覆盖测试。
顺便附上ROM下载链接如下:
- 国内版 ROM:https://www.miui.com/download.html
- 国际版 ROM:http://en.miui.com/download.html
编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12592/
部分内容来自网络投稿,如有侵权联系立删