我正在使用appium自动化Android应用程序,我有一个场景需要在Fringerprint可用和不可用的设备上进行验证。
要获取设备详细信息,例如设备操作系统版本,名称等,我正在使用adb shell命令,例如
adb shell getprop ro.build.version.release
像这样,我试图获取启用指纹的设备的道具,并得到了以下与指纹相关的道具
[ro.bootimage.build.fingerprint]: [google/angler/angler:7.1.2/N2G47O/3852959:user/release-keys]
[ro.vendor.build.fingerprint]: [google/angler/angler:7.1.2/N2G47O/3852959:user/release-keys]
[init.svc.fingerprintd]: [running]
现在需要知道哪个是要检查的正确属性
- 指纹选项是否可用
- 是否启用了指纹设置(我的意思是至少添加了一根手指)
您列出的前两个属性[ro.bootimage.build.fingerprint]和[ro.vendor.build.fingerprint]与指纹读取器设备无关,而是与引导分区(ro.bootimage)和供应商特定软件分区(ro.vendor)的Android磁盘映像的加密指纹相关。
属性 [init.svc.fingerprintd] 告诉您指纹守护程序 (指纹) 服务 (svc) 的当前状态(正在运行)。需要此服务来注册指纹和执行其他操作(请参阅 https://source.android.com/security/authentication/fingerprint-hal)。
因此,您需要在其他地方寻找一种方法来检查指纹选项是否可用并设置。FingerprintManager API有一个公共方法hasEnrolledFingerprints()
可用于确定是否至少注册了一个指纹。可以从应用内调用此 API。
在 adb shell 中,您可能必须直接调用指纹服务,而不是使用 API(将 Android API 函数与 ADB 一起使用)。
若要获取唯一的设备指纹,请使用以下adb
命令adb shell getprop ro.build.fingerprint