外围设备集成API¶
安卓设备制造商将各种数据输入和输出设备(如指纹传感器、温度传感器)添加到设备中,以用于各种工业应用。通过使用集成或附加到安卓设备上的外围设备,可以在考勤应用程序中使用。
对于这类设备,制造商提供自己的API来访问这些设备。下图显示了带有集成传感器的基本设备。
温度传感器
指纹传感器
NFC扫描仪
运动传感器
照相机
灯
NCheck支持使用NCheck SDK捕获设备服务API集成第三方指纹扫描仪。NCheck SDK捕获设备服务API提供和API接口来开发一个模块,并与NCheck Android集成,使用第三方指纹扫描仪控制和捕获指纹。本文档描述了开发指纹扫描仪模块以将指纹扫描仪与NCheck集成的过程。
第三方传感器与安卓标准客户端集成¶
扫描仪集成应用程序用于配置和控制第三方指纹扫描仪设备。
应用组件¶
它应该有以下组件。
配置活动NCheck Android使用此活动配置Android服务并读取配置详细信息。
Android服务使用CaptureDeviceInterface(参见API文档)抽象类开发的Android服务。这项服务从指纹设备连接、控制和捕获。
创建扫描仪集成应用程序¶
创建一个新的安卓应用程序。
添加NCheck外围API库模块
添加配置活动(MyScannerConfigurationActivity)
配置活动应具有所有与外围设备服务相关的配置
在Android manifest文件中配置Activity从NCheck外部外设配置访问如下显示
如 图 26 所示,在这个配置中,行为名称(ex:MyPeripheral)是NCheck 安卓查找外设集成应用程序配置活动的唯一标识。
添加代码以将配置信息发送到NCheck android。重写配置活动的onBackPressed方法,如 图 27 所示。然后它将发送与指纹扫描服务通信所需的配置信息。
在这个代码中,MyPeripheralService是外围应用程序Android服务的类名。
通过从API扩展CaptureDeviceService类来添加新的android服务(MyPeripherService)
在新服务类中实现以下抽取方法
Public static CaptureDataType[] CaptureTypes
Shadow方法来替换supper类Capture类型的静态属性
public abstract String GetName()
实现此方法以提供外围设备服务的名称。
public abstract CaptureDataType[] GetCaptureTypes()
实现此方法以提供外围设备的数据标识。它应该是CaptureDataType.FINGERPRINT或CaptureDataType.SENSOR
public abstract Point[] GetImageSizes()
实现此方法以在指纹读取器的情况下提供可能的图像分辨率。它只支持一个分辨率。多个分辨率仅供将来使用。
public abstract void Start()
实现此方法以启动通信状态。在启动之前,外围设备服务的状态是断开的。它应该使用CaptureDeviceService类的SendStatus方法通知状态更改。当调用Start方法时,外围设备服务应将状态更改为NOT_READY。应尝试在后台与外围设备建立通信。一旦设备的状态从“准备就绪”更改为“捕获”,则应将状态从“准备就绪”更改为“捕获”。
public abstract void Stop()
实现此方法以停止与硬件的通信并将状态返回到Disconnected。如果在准备就绪前发出捕获请求,设备应立即启动捕获并将状态更改为捕获。电流捕捉和
public abstract void ShowMessage(DisplayMessageType Type, String msg)
实现此方法以显示来自NCheck 生物识别考勤的消息(如果有显示)。调用此方法将发送消息和消息文本的文件。根据设备的功能,它可以处理消息。如果显示器、LED指示灯或蜂鸣器不可用,则无法执行任何操作。例如,如果有三个颜色的LED,它只能处理信息中的信息,如绿色表示信息,黄色表示警告,红色表示错误。
public abstract void ShowResults(String name, int inout, String time1, String time2)
实现此方法在外围设备中显示签入签出结果。在设备中提供显示或用户通知功能的情况下,此功能非常有用。此方法发送用户的全名、event 类型、用户签入时间和用户签出时间。
public abstract boolean Capture(CaptureDataType dataType, Point resolution)
实现本系统接收捕获启动。当它接到呼叫时,如果外设服务可以与外设进行通信,它应该立即开始捕获。如果它还没有准备好与外围设备通信,它应该等到与硬件建立通信之后,在与硬件建立通信之后立即开始捕获。捕获方法可以指定捕获数据的大小和图像分辨率当启用捕获时,外设服务可以使用SenCapturedData方法将捕获的数据发送到NCheck Bio考勤客户端。SendCaptureData可以将原始图像数据以位图形式发送,文本数据以字符串形式发送,或者以字节数组的形式发送提取的模板数据。对于外围设备服务,捕获的数据应该只有原始图像数据作为位图
public abstract void CancelCapture(CaptureDataType dataType)
实现此方法取消当前数据捕获操作。数据类型参数仅支持指纹。
public abstract Sense(int index)
实现此方法以开始读取传感器数据操作。参数index是针对未来使用的,需要提供0。服务应开始读取传感器数据,并调用sendSensorDataUpdate方法将传感器数据发送到NCheck。传感器数据应包括
索引
传感器索引保留供将来使用。
范围
具有最小值和最大值的数据的可能范围。
精准性
数据的精确性。
阈值
测量数据的过阈值。
StrMessage
要在NCheck应用程序中显示的文本消息
public abstract void CancelSense(int index)
实现此方法来取消当前读取传感器数据的操作。参数index是针对未来使用的,需要提供0。
在Android清单文件中配置外围服务,如 图 28 所示。
测试扫描仪服务¶
API提供了一个名为CaptureDeviceServiceTest的测试活动。还可以使用CaptureDeviceService类的LaunchTestActivity静态方法启动此服务活动。