Files
pad_scanner/docs/D500_Android_SDK使用说明书.md
Misaka 8fa02424a5 Add D500 scanner SDK documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-06 21:47:04 +08:00

16 KiB
Raw Permalink Blame History

D500 Android SDK 使用说明书

江苏东大集成电路系统工程技术有限公司 www.seuic.com

![SEUIC 东集 Logo 图片占位符]

修订记录

版本号 修订日期 修订内容 修订人员
0.0 2014/08/05 建立本文档 钱进
0.1 2014/08/05 加入 keypad、touch 接口的说明 张松
0.2 2014/08/08 更改文档模板,并按模板重写文档 徐良伟
1.0 2014/08/09 加入"系统包的使用",并按 touch 新接口修改文档 徐良伟
1.1 2014/09/02 加入 touch 新的接口说明 加入 misc 接口 魏启运
1.2 2015/04/29 在 misc 接口中增加启用/禁用状态栏下拉的接口,增加卸载/加载外置 SD 卡的接口 张松
1.3 2017/03/16 在 misc 接口中添加 Zigbee 及 Fingerprint 的访问接口 钱进
1.4 2017/03/29 更新 Zigbee 和 Fingerprint 接口 徐良伟

目录

  • 概述
    • 硬件平台
    • 软件平台
    • 适用对象
    • 系统包的使用
  • 触摸屏接口
    • TouchService 类
  • 键盘接口
    • KeypadService 类
  • Misc 接口
    • Misc 类
    • Zigbee 类
    • Fingerprint 类
    • Manager 类

概述

本文档介绍了 D500 上提供的设备相关的包的使用说明,以便帮助用户更好的使用终端产品提供的特殊功能。

硬件平台

SDK 适用于以下终端设备:

  • D500
  • D510
  • D330S

具体使用范围在函数接口说明中指明,若无指明表示都支持。

软件平台

SDK 基于 Android 4.3 版本,支持 eclipse 开发工具。

适用对象

除了 Android 的标准功能外,希望用到设备提供的增值功能的开发人员。这部分增值功能包括一维扫描、二维扫描、键盘特殊设置、触摸特殊设置等实用功能。

系统包的使用

如果接口中标明是系统包,表明该包是内置到系统中的,无需将该包加入到 apk 中。下面以键盘接口为例,来说明如何在 eclipse 中使用系统包。

  • 在工程目录下建一个 libsref 目录(目录名称可以任意指定),将 keypad.jar 拷贝到此目录下。
  • 在 eclipse 中选中工程,在菜单中选择 Project → Properties → Java Build Path点击 Add External JARS... 按钮,选择刚才的 keypad.jar。这时可以在工程视图的 Referenced Libraries 下看到刚才我们引用的 keypad.jar,展开可以看到所有 keypad.jar 提供的包、类、函数、变量。
  • AndroidManifest.xml 中使用 uses-library 用包名来标示 keypad.jar 是引用包。
<application
    ……
    <uses-library
        android:name="com.seuic.keypad" />
    ……
</application>

触摸屏接口

项目 内容
包名 com.seuic.touch
包文件 touch.jar
系统包
包含的类 TouchService
作用 提供触摸屏相关的控制接口

TouchService 类

使用方法

import com.seuic.touch.TouchService;
TouchService touch = TouchService.getInstance();

函数接口

函数 说明
getGloveMode 获取当前手套模式开关状态
setGloveMode 设置手套模式开关
getTouchEnabled 获取当前触屏使能状态
setTouchEnabled 设置触摸屏使能开关
getVirKeyDisabled 获取虚拟按键屏蔽状态(仅 D500 支持)
setVirKeyDisabled 设置虚拟按键屏蔽状态(仅 D500 支持)

1. 获取当前手套模式开关状态

int getGloveMode()

参数:

返回值: 返回手套模式状态,有以下几种:

状态 说明
MODE_GLOVE_OFF 0 手套模式关闭
MODE_GLOVE_ON 1 手套模式打开
<0 触摸接口不正常,或该设备不支持手套模式设置

2. 设置手套模式开关

boolean setGloveMode(int mode)

参数:

  • mode:手套模式状态,见 getGloveMode() 函数返回值的说明。

返回值: 返回 true 表示成功,false 表示失败。

3. 获取当前触摸屏使能状态

int getTouchEnable()

参数:

返回值: 返回触摸屏使能状态,有以下几种:

状态 说明
TOUCH_ENABLED_OFF 0 触摸屏处于锁屏状态
TOUCH_ENABLED_ON 1 触摸屏处于正常使用状态
<0 触摸接口不正常,或该设备不支持触摸屏使能设置

4. 设置触摸屏使能开关

boolean setTouchEnabled(int enable, Context context)

参数:

  • enable:触摸屏使能状态,见 getTouchEnabled() 函数返回值的说明。
  • context:调用者的上下文,用于向系统广播锁屏通知,以便在通知栏显示当前锁屏状态。

返回值: 返回 true 表示成功,false 表示失败。

5. 获取虚拟按键屏蔽状态

int getVirKeyDisabled()

参数:

返回值: 返回虚拟按键屏蔽状态,有以下几种:

状态 说明
VKEY1_DISABLE_MASK 1 << 0 虚拟键一被屏蔽
VKEY2_DISABLE_MASK 1 << 1 虚拟键二被屏蔽
VKEY3_DISABLE_MASK 1 << 2 虚拟键三键被屏蔽
VKEY_ALL_DISABLE_MASK 0x7 所有虚拟按键均屏蔽
0 所有虚拟按键未被屏蔽
<0 触摸接口不正常,或设备不支持触摸屏设置

6. 设置虚拟按键屏蔽状态

boolean setVirKeyDisabled(int disableMask)

参数:

  • disableMask:虚拟按键屏蔽状态,见 getVirKeyDisabled() 函数返回值的说明。

返回值: 返回 true 表示成功,false 表示失败。


键盘接口

项目 内容
包名 com.seuic.keypad
包文件 keypad.jar
系统包
包含的类 KeypadService
作用 提供键盘相关的控制接口

KeypadService 类

使用方法

import com.seuic.keypad.KeypadService;
KeypadService keypad = KeypadService.getInstance();

函数接口

函数 说明
getMode 获取键盘模式(仅 D500 支持)
setMode 设置键盘模式(仅 D500 支持)

1. 获取键盘模式

int getMode()

参数:

返回值: 返回键盘功能键模式,有以下几种:

状态 说明
MODE_NORMAL 0 标准模式。根据当前 Num、Fn 的状态灯输出数字或功能键。
MODE_STICK_ONCE 1 Fn 键只粘滞一次模式。当处于 Fn 状态时,按一下按键输出功能键,然后自动切换到 Num 模式。
<0 键盘接口不正常,或该设备不支持键盘模式设置

2. 设置键盘模式

boolean setMode(int mode)

参数:

  • mode:键盘模式状态,见 getMode() 函数返回值的说明。

返回值: 返回 true 表示成功,false 表示失败。


Misc 接口

项目 内容
包名 com.seuic.misc
包文件 misc.jar
系统包
包含的类 Misc
作用 提供系统其它接口

Misc 类

使用方法

import com.seuic.misc.Misc;
Misc misc = new Misc();

函数接口

函数 说明
getSN 获取设备 SN
getStatusBarEnabled 获取系统状态栏是否允许下拉的状态
setStatusBarEnabled 设置系统状态栏是否允许下拉
getExtSDCardMounted 获取外置 SD 卡是否卸载
setExtSDCardMounted 设置外置 SD 卡卸载或加载
getCustomId 获取用户自定义序列号。仅支持 D700_V1.6.0 及之后版本D700C_V1.2.0 及之后版本D700P_V1.1.2 及之后版本。

1. 获取设备 SN

String getSN()

参数:

返回值: 返回厂家定义的 SN 号,有以下几种:

状态 说明
null null 获取 SN 失败
String 类型 String 类型 获取成功

2. 获取系统状态栏是否允许下拉的状态

int getStatusBarEnabled(Context context)

参数:

  • context:上下文。

返回值: 返回状态栏是否允许下拉的状态,如下:

状态 说明
STATUSBAR_DISABLED 0 系统状态栏不允许下拉。
STATUSBAR_ENABLED 1 系统状态栏允许下拉。
<0 接口不正常,或该设备不支持系统状态栏的设置。

3. 设置系统状态栏是否允许下拉

void setStatusBarEnabled(Context context, int enable)

参数:

  • context:上下文。
  • enable:状态栏是否允许下拉,取值见 getStatusBarEnabled() 返回值。

返回值:

4. 获取外置 SD 卡是否卸载

int getExtSDCardMounted(Context context)

参数:

  • context:上下文。

返回值: 返回外置 SD 卡的状态,如下:

状态 说明
EXT_SDCARD_UNMOUNTED 0 外置 SD 卡卸载。
EXT_SDCARD_MOUNTED 1 外置 SD 卡未卸载。
<0 接口不正常,或该设备不支持外置 SD 卡的卸载。

5. 设置外置 SD 卡卸载或装载

void setExtSDCardMounted(Context context, int enable)

参数:

  • context:上下文。
  • enable:设置外置 SD 卡的卸载加载,取值见 getExtSDCardMounted() 返回值。

返回值:

6. 获取用户自定义序列号

String getCustomId()

参数:

返回值: 返回用户自定义序列号,仅 D700 系列支持,其它项目请勿调用此函数,会异常

返回值有以下几种:

状态 说明
null null 获取用户自定义序列号失败
String 类型 String 类型 获取成功

Zigbee 类

使用方法

import com.seuic.misc.Zigbee;
Zigbee zigbee = new Zigbee();

操作流程

参考流程:openpowerOnread & writepowerOffclose

该类提供的函数可以分为两组,一组是用于模块的上电/断电,一组用于串口的操作。模块的上电和串口打开谁先谁后并没有严格的顺序,视具体设备要求。

函数接口

函数 说明
getDeviceName 获取设备名称
powerOn 设备上电
powerOff 设备断电
open 打开设备,包括打开串口,不包括上电
close 关闭设备,包括关闭串口,不包括断电
read 封装对设备的读操作
write 封装对设备的写操作

1. 获取设备名称

public String getDeviceName()

参数:

返回值: 该设备连接的串口设备文件,如 /dev/ttyUART0

2. 设备上电

public void powerOn()

参数:

返回值:

3. 设备断电

public void powerOff()

参数:

返回值:

4. 打开设备,包括打开串口

public boolean open()
public boolean open(int baudrate)
public boolean open(int baudrate, int dataBits, int stopBits, int parity)

参数:

  • baudrate:波特率,如 115200
  • dataBits:数据位,目前支持 5678
  • stopBits:停止位,目前支持 12
  • parity:奇偶校验
    • 'n''N':无奇偶校验
    • 'o''O':奇校验
    • 'e''E':偶校验
    • 'm''M':标记检验
    • 's''S':空白校验

返回值: 成功或失败

备注: 提供 3 个 open 接口简化串口的参数设置,默认串口 1152008 位数据位1 位停止位,无奇偶校验。用户可以根据实际情况选择相应的接口。

5. 关闭设备,包括关闭串口

public void close()

参数:

返回值:

6. 封装对设备的读操作

public byte[] read(int len, int timeout)

参数:

参数 类型 说明
len int 要读取的长度
timeout int 超时,单位毫秒

返回值: 读取到的字节数组,失败的话返回 null

7. 封装对设备的写操作

public boolean write(byte[] data, int len)

参数:

参数 类型 说明
data byte[] 要写入设备的字节数组
len int 要写入的长度,应当 <= data 的实际长度

返回值: 成功或失败

Fingerprint 类

使用方法

import com.seuic.misc.Fingerprint;
Fingerprint fingerprint = new Fingerprint();

操作流程

openpowerOnread & writepowerOffclose

有的指纹模块可能需要先 powerOnopen,请和模块厂家确认。

该类提供的函数可以分为两组,一组是用于模块的上电/断电,一组用于串口的操作。模块的上电和串口打开谁先谁后并没有严格的顺序,视具体设备要求。

函数接口

函数 说明
getDeviceName 获取设备名称
powerOn 设备上电
powerOff 设备断电
open 打开设备,包括打开串口,不包括上电
close 关闭设备,包括关闭串口,不包括断电
read 封装对设备的读操作
write 封装对设备的写操作

1. 获取设备名称

public String getDeviceName()

参数:

返回值: 该设备连接的串口设备文件,如 /dev/ttyUART0

2. 设备上电

public void powerOn()

参数:

返回值:

3. 设备断电

public void powerOff()

参数:

返回值:

4. 打开设备,包括打开串口

public boolean open()
public boolean open(int baudrate)
public boolean open(int baudrate, int dataBits, int stopBits, int parity)

参数:

  • baudrate:波特率,如 115200
  • dataBits:数据位,目前支持 5678
  • stopBits:停止位,目前支持 12
  • parity:奇偶校验
    • 'n''N':无奇偶校验
    • 'o''O':奇校验
    • 'e''E':偶校验
    • 'm''M':标记检验
    • 's''S':空白校验

返回值: 成功或失败

备注: 提供 3 个 open 接口简化串口的参数设置,默认串口 1152008 位数据位1 位停止位,无奇偶校验。用户可以根据实际情况选择相应的接口。

5. 关闭设备,包括关闭串口

public void close()

参数:

返回值:

6. 封装对设备的读操作

public byte[] read(int len, int timeout)

参数:

参数 类型 说明
len int 要读取的长度
timeout int 超时,单位毫秒

返回值: 读取到的字节数组,失败的话返回 null

7. 封装对设备的写操作

public boolean write(byte[] data, int len)

参数:

参数 类型 说明
data byte[] 要写入设备的字节数组
len int 要写入的长度,应当 <= data 的实际长度

返回值: 成功或失败

Manager 类

使用方法

import com.seuic.misc.Manager;
Manager manager = new Manager(context);

函数接口

函数 说明
enableUsb 使能/禁用 USB。使能状态下usb 才可以设置为 mtp/ptp/U 盘模式。仅支持 D700_V1.6.0 及之后版本。
isUsbEnabled 查看 USB 使能状态。仅支持 D700_V1.6.0 及之后版本。

1. 使能/禁用 USB

public boolean enableUsb(boolean enable)

参数:

  • enable
    • true:使能
    • false:禁用

返回值: 设置是否成功。

2. 查看 USB 使能状态

public boolean isUsbEnabled()

参数:

返回值: true 表示使能,false 表示禁用。默认是使能状态。