外围设备集成API

安卓设备制造商将各种数据输入和输出设备(如指纹传感器、温度传感器)添加到设备中,以用于各种工业应用。通过使用集成或附加到安卓设备上的外围设备,可以在考勤应用程序中使用。

_images/image42.PNG

图 22 带指纹扫描仪、温度传感器和动作传感器功能示例设备图像

对于这类设备,制造商提供自己的API来访问这些设备。下图显示了带有集成传感器的基本设备。

  1. 温度传感器

  2. 指纹传感器

  3. NFC扫描仪

  4. 运动传感器

  5. 照相机

NCheck支持使用NCheck SDK捕获设备服务API集成第三方指纹扫描仪。NCheck SDK捕获设备服务API提供和API接口来开发一个模块,并与NCheck Android集成,使用第三方指纹扫描仪控制和捕获指纹。本文档描述了开发指纹扫描仪模块以将指纹扫描仪与NCheck集成的过程。

第三方传感器与安卓标准客户端集成

扫描仪集成应用程序用于配置和控制第三方指纹扫描仪设备。

应用组件

它应该有以下组件。

  1. 配置活动NCheck Android使用此活动配置Android服务并读取配置详细信息。

  2. Android服务使用CaptureDeviceInterface(参见API文档)抽象类开发的Android服务。这项服务从指纹设备连接、控制和捕获。

创建扫描仪集成应用程序

  1. 创建一个新的安卓应用程序。

  2. 添加NCheck外围API库模块

    1. 通过“文件”>“项目结构”打开项目结构

    2. 从左侧菜单中选择“模块”

      _images/image44.PNG

      图 23 Android Studio工程结构对话框

    3. 点击左上角的“+”按钮添加新模块

    4. 选择模块类型从创建新模块对话框中选择“import Jar/AAR packages”并选择“下一步”按钮

_images/image46.PNG

图 24 创建新模块对话框选择 JAR/AAR包

  1. 选择与导入peripheralSDK.aar模组

    _images/image48.PNG

    图 25 从创建新模块对话框导入PeripheralSDK.aar

  1. 添加配置活动(MyScannerConfigurationActivity)

    配置活动应具有所有与外围设备服务相关的配置

  2. 在Android manifest文件中配置Activity从NCheck外部外设配置访问如下显示

图 26 所示,在这个配置中,行为名称(ex:MyPeripheral)是NCheck 安卓查找外设集成应用程序配置活动的唯一标识。

_images/image50.PNG

图 26 安卓manifest文件更改从外部设备配置访问

  1. 添加代码以将配置信息发送到NCheck android。重写配置活动的onBackPressed方法,如 图 27 所示。然后它将发送与指纹扫描服务通信所需的配置信息。

    _images/image52.PNG

    图 27 发送与指纹扫描仪服务沟通的配置代码片段

在这个代码中,MyPeripheralService是外围应用程序Android服务的类名。

  1. 通过从API扩展CaptureDeviceService类来添加新的android服务(MyPeripherService)

  2. 在新服务类中实现以下抽取方法

  3. Public static CaptureDataType[] CaptureTypes

    Shadow方法来替换supper类Capture类型的静态属性

  4. public abstract String GetName()

    实现此方法以提供外围设备服务的名称。

  5. public abstract CaptureDataType[] GetCaptureTypes()

    实现此方法以提供外围设备的数据标识。它应该是CaptureDataType.FINGERPRINT或CaptureDataType.SENSOR

  6. public abstract Point[] GetImageSizes()

    实现此方法以在指纹读取器的情况下提供可能的图像分辨率。它只支持一个分辨率。多个分辨率仅供将来使用。

  7. public abstract void Start()

    实现此方法以启动通信状态。在启动之前,外围设备服务的状态是断开的。它应该使用CaptureDeviceService类的SendStatus方法通知状态更改。当调用Start方法时,外围设备服务应将状态更改为NOT_READY。应尝试在后台与外围设备建立通信。一旦设备的状态从“准备就绪”更改为“捕获”,则应将状态从“准备就绪”更改为“捕获”。

  8. public abstract void Stop()

    实现此方法以停止与硬件的通信并将状态返回到Disconnected。如果在准备就绪前发出捕获请求,设备应立即启动捕获并将状态更改为捕获。电流捕捉和

  9. public abstract void ShowMessage(DisplayMessageType Type, String msg)

    实现此方法以显示来自NCheck 生物识别考勤的消息(如果有显示)。调用此方法将发送消息和消息文本的文件。根据设备的功能,它可以处理消息。如果显示器、LED指示灯或蜂鸣器不可用,则无法执行任何操作。例如,如果有三个颜色的LED,它只能处理信息中的信息,如绿色表示信息,黄色表示警告,红色表示错误。

  10. public abstract void ShowResults(String name, int inout, String time1, String time2)

    实现此方法在外围设备中显示签入签出结果。在设备中提供显示或用户通知功能的情况下,此功能非常有用。此方法发送用户的全名、event 类型、用户签入时间和用户签出时间。

  11. public abstract boolean Capture(CaptureDataType dataType, Point resolution)

    实现本系统接收捕获启动。当它接到呼叫时,如果外设服务可以与外设进行通信,它应该立即开始捕获。如果它还没有准备好与外围设备通信,它应该等到与硬件建立通信之后,在与硬件建立通信之后立即开始捕获。捕获方法可以指定捕获数据的大小和图像分辨率当启用捕获时,外设服务可以使用SenCapturedData方法将捕获的数据发送到NCheck Bio考勤客户端。SendCaptureData可以将原始图像数据以位图形式发送,文本数据以字符串形式发送,或者以字节数组的形式发送提取的模板数据。对于外围设备服务,捕获的数据应该只有原始图像数据作为位图

  12. public abstract void CancelCapture(CaptureDataType dataType)

    实现此方法取消当前数据捕获操作。数据类型参数仅支持指纹。

  13. public abstract Sense(int index)

    实现此方法以开始读取传感器数据操作。参数index是针对未来使用的,需要提供0。服务应开始读取传感器数据,并调用sendSensorDataUpdate方法将传感器数据发送到NCheck。传感器数据应包括

  14. 索引

    传感器索引保留供将来使用。

  15. 范围

    具有最小值和最大值的数据的可能范围。

  16. 精准性

    数据的精确性。

  17. 阈值

    测量数据的过阈值。

  18. StrMessage

    要在NCheck应用程序中显示的文本消息

  19. public abstract void CancelSense(int index)

    实现此方法来取消当前读取传感器数据的操作。参数index是针对未来使用的,需要提供0。

  20. 在Android清单文件中配置外围服务,如 图 28 所示。

    _images/image54.PNG

    图 28 在安卓manifest文件中配置外设服务代码片段

测试扫描仪服务

API提供了一个名为CaptureDeviceServiceTest的测试活动。还可以使用CaptureDeviceService类的LaunchTestActivity静态方法启动此服务活动。

_images/image56.PNG

图 29 扫描仪服务测试视图