664 lines
16 KiB
Markdown
664 lines
16 KiB
Markdown
# 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` 是引用包。
|
||
|
||
```xml
|
||
<application
|
||
……
|
||
<uses-library
|
||
android:name="com.seuic.keypad" />
|
||
……
|
||
</application>
|
||
```
|
||
|
||
---
|
||
|
||
# 触摸屏接口
|
||
|
||
| 项目 | 内容 |
|
||
| --- | --- |
|
||
| 包名 | `com.seuic.touch` |
|
||
| 包文件 | `touch.jar` |
|
||
| 系统包 | 是 |
|
||
| 包含的类 | `TouchService` |
|
||
| 作用 | 提供触摸屏相关的控制接口 |
|
||
|
||
## TouchService 类
|
||
|
||
### 使用方法
|
||
|
||
```java
|
||
import com.seuic.touch.TouchService;
|
||
TouchService touch = TouchService.getInstance();
|
||
```
|
||
|
||
### 函数接口
|
||
|
||
| 函数 | 说明 |
|
||
| --- | --- |
|
||
| `getGloveMode` | 获取当前手套模式开关状态 |
|
||
| `setGloveMode` | 设置手套模式开关 |
|
||
| `getTouchEnabled` | 获取当前触屏使能状态 |
|
||
| `setTouchEnabled` | 设置触摸屏使能开关 |
|
||
| `getVirKeyDisabled` | 获取虚拟按键屏蔽状态(仅 D500 支持) |
|
||
| `setVirKeyDisabled` | 设置虚拟按键屏蔽状态(仅 D500 支持) |
|
||
|
||
#### 1. 获取当前手套模式开关状态
|
||
|
||
```java
|
||
int getGloveMode()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 返回手套模式状态,有以下几种:
|
||
|
||
| 状态 | 值 | 说明 |
|
||
| --- | --- | --- |
|
||
| `MODE_GLOVE_OFF` | 0 | 手套模式关闭 |
|
||
| `MODE_GLOVE_ON` | 1 | 手套模式打开 |
|
||
| | <0 | 触摸接口不正常,或该设备不支持手套模式设置 |
|
||
|
||
#### 2. 设置手套模式开关
|
||
|
||
```java
|
||
boolean setGloveMode(int mode)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `mode`:手套模式状态,见 `getGloveMode()` 函数返回值的说明。
|
||
|
||
**返回值:** 返回 `true` 表示成功,`false` 表示失败。
|
||
|
||
#### 3. 获取当前触摸屏使能状态
|
||
|
||
```java
|
||
int getTouchEnable()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 返回触摸屏使能状态,有以下几种:
|
||
|
||
| 状态 | 值 | 说明 |
|
||
| --- | --- | --- |
|
||
| `TOUCH_ENABLED_OFF` | 0 | 触摸屏处于锁屏状态 |
|
||
| `TOUCH_ENABLED_ON` | 1 | 触摸屏处于正常使用状态 |
|
||
| | <0 | 触摸接口不正常,或该设备不支持触摸屏使能设置 |
|
||
|
||
#### 4. 设置触摸屏使能开关
|
||
|
||
```java
|
||
boolean setTouchEnabled(int enable, Context context)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `enable`:触摸屏使能状态,见 `getTouchEnabled()` 函数返回值的说明。
|
||
- `context`:调用者的上下文,用于向系统广播锁屏通知,以便在通知栏显示当前锁屏状态。
|
||
|
||
**返回值:** 返回 `true` 表示成功,`false` 表示失败。
|
||
|
||
#### 5. 获取虚拟按键屏蔽状态
|
||
|
||
```java
|
||
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. 设置虚拟按键屏蔽状态
|
||
|
||
```java
|
||
boolean setVirKeyDisabled(int disableMask)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `disableMask`:虚拟按键屏蔽状态,见 `getVirKeyDisabled()` 函数返回值的说明。
|
||
|
||
**返回值:** 返回 `true` 表示成功,`false` 表示失败。
|
||
|
||
---
|
||
|
||
# 键盘接口
|
||
|
||
| 项目 | 内容 |
|
||
| --- | --- |
|
||
| 包名 | `com.seuic.keypad` |
|
||
| 包文件 | `keypad.jar` |
|
||
| 系统包 | 是 |
|
||
| 包含的类 | `KeypadService` |
|
||
| 作用 | 提供键盘相关的控制接口 |
|
||
|
||
## KeypadService 类
|
||
|
||
### 使用方法
|
||
|
||
```java
|
||
import com.seuic.keypad.KeypadService;
|
||
KeypadService keypad = KeypadService.getInstance();
|
||
```
|
||
|
||
### 函数接口
|
||
|
||
| 函数 | 说明 |
|
||
| --- | --- |
|
||
| `getMode` | 获取键盘模式(仅 D500 支持) |
|
||
| `setMode` | 设置键盘模式(仅 D500 支持) |
|
||
|
||
#### 1. 获取键盘模式
|
||
|
||
```java
|
||
int getMode()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 返回键盘功能键模式,有以下几种:
|
||
|
||
| 状态 | 值 | 说明 |
|
||
| --- | --- | --- |
|
||
| `MODE_NORMAL` | 0 | 标准模式。根据当前 Num、Fn 的状态灯输出数字或功能键。 |
|
||
| `MODE_STICK_ONCE` | 1 | Fn 键只粘滞一次模式。当处于 Fn 状态时,按一下按键输出功能键,然后自动切换到 Num 模式。 |
|
||
| | <0 | 键盘接口不正常,或该设备不支持键盘模式设置 |
|
||
|
||
#### 2. 设置键盘模式
|
||
|
||
```java
|
||
boolean setMode(int mode)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `mode`:键盘模式状态,见 `getMode()` 函数返回值的说明。
|
||
|
||
**返回值:** 返回 `true` 表示成功,`false` 表示失败。
|
||
|
||
---
|
||
|
||
# Misc 接口
|
||
|
||
| 项目 | 内容 |
|
||
| --- | --- |
|
||
| 包名 | `com.seuic.misc` |
|
||
| 包文件 | `misc.jar` |
|
||
| 系统包 | 是 |
|
||
| 包含的类 | `Misc` |
|
||
| 作用 | 提供系统其它接口 |
|
||
|
||
## Misc 类
|
||
|
||
### 使用方法
|
||
|
||
```java
|
||
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
|
||
|
||
```java
|
||
String getSN()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 返回厂家定义的 SN 号,有以下几种:
|
||
|
||
| 状态 | 值 | 说明 |
|
||
| --- | --- | --- |
|
||
| null | null | 获取 SN 失败 |
|
||
| String 类型 | String 类型 | 获取成功 |
|
||
|
||
#### 2. 获取系统状态栏是否允许下拉的状态
|
||
|
||
```java
|
||
int getStatusBarEnabled(Context context)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `context`:上下文。
|
||
|
||
**返回值:** 返回状态栏是否允许下拉的状态,如下:
|
||
|
||
| 状态 | 值 | 说明 |
|
||
| --- | --- | --- |
|
||
| `STATUSBAR_DISABLED` | 0 | 系统状态栏不允许下拉。 |
|
||
| `STATUSBAR_ENABLED` | 1 | 系统状态栏允许下拉。 |
|
||
| | <0 | 接口不正常,或该设备不支持系统状态栏的设置。 |
|
||
|
||
#### 3. 设置系统状态栏是否允许下拉
|
||
|
||
```java
|
||
void setStatusBarEnabled(Context context, int enable)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `context`:上下文。
|
||
- `enable`:状态栏是否允许下拉,取值见 `getStatusBarEnabled()` 返回值。
|
||
|
||
**返回值:** 无
|
||
|
||
#### 4. 获取外置 SD 卡是否卸载
|
||
|
||
```java
|
||
int getExtSDCardMounted(Context context)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `context`:上下文。
|
||
|
||
**返回值:** 返回外置 SD 卡的状态,如下:
|
||
|
||
| 状态 | 值 | 说明 |
|
||
| --- | --- | --- |
|
||
| `EXT_SDCARD_UNMOUNTED` | 0 | 外置 SD 卡卸载。 |
|
||
| `EXT_SDCARD_MOUNTED` | 1 | 外置 SD 卡未卸载。 |
|
||
| | <0 | 接口不正常,或该设备不支持外置 SD 卡的卸载。 |
|
||
|
||
#### 5. 设置外置 SD 卡卸载或装载
|
||
|
||
```java
|
||
void setExtSDCardMounted(Context context, int enable)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `context`:上下文。
|
||
- `enable`:设置外置 SD 卡的卸载加载,取值见 `getExtSDCardMounted()` 返回值。
|
||
|
||
**返回值:** 无
|
||
|
||
#### 6. 获取用户自定义序列号
|
||
|
||
```java
|
||
String getCustomId()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 返回用户自定义序列号,**仅 D700 系列支持,其它项目请勿调用此函数,会异常**。
|
||
|
||
返回值有以下几种:
|
||
|
||
| 状态 | 值 | 说明 |
|
||
| --- | --- | --- |
|
||
| null | null | 获取用户自定义序列号失败 |
|
||
| String 类型 | String 类型 | 获取成功 |
|
||
|
||
## Zigbee 类
|
||
|
||
### 使用方法
|
||
|
||
```java
|
||
import com.seuic.misc.Zigbee;
|
||
Zigbee zigbee = new Zigbee();
|
||
```
|
||
|
||
### 操作流程
|
||
|
||
参考流程:`open` → `powerOn` → `read & write` → `powerOff` → `close`
|
||
|
||
该类提供的函数可以分为两组,一组是用于模块的上电/断电,一组用于串口的操作。模块的上电和串口打开谁先谁后并没有严格的顺序,视具体设备要求。
|
||
|
||
### 函数接口
|
||
|
||
| 函数 | 说明 |
|
||
| --- | --- |
|
||
| `getDeviceName` | 获取设备名称 |
|
||
| `powerOn` | 设备上电 |
|
||
| `powerOff` | 设备断电 |
|
||
| `open` | 打开设备,包括打开串口,不包括上电 |
|
||
| `close` | 关闭设备,包括关闭串口,不包括断电 |
|
||
| `read` | 封装对设备的读操作 |
|
||
| `write` | 封装对设备的写操作 |
|
||
|
||
#### 1. 获取设备名称
|
||
|
||
```java
|
||
public String getDeviceName()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 该设备连接的串口设备文件,如 `/dev/ttyUART0`
|
||
|
||
#### 2. 设备上电
|
||
|
||
```java
|
||
public void powerOn()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 无
|
||
|
||
#### 3. 设备断电
|
||
|
||
```java
|
||
public void powerOff()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 无
|
||
|
||
#### 4. 打开设备,包括打开串口
|
||
|
||
```java
|
||
public boolean open()
|
||
public boolean open(int baudrate)
|
||
public boolean open(int baudrate, int dataBits, int stopBits, int parity)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `baudrate`:波特率,如 `115200`
|
||
- `dataBits`:数据位,目前支持 `5`、`6`、`7`、`8`
|
||
- `stopBits`:停止位,目前支持 `1`、`2`
|
||
- `parity`:奇偶校验
|
||
- `'n'` 或 `'N'`:无奇偶校验
|
||
- `'o'` 或 `'O'`:奇校验
|
||
- `'e'` 或 `'E'`:偶校验
|
||
- `'m'` 或 `'M'`:标记检验
|
||
- `'s'` 或 `'S'`:空白校验
|
||
|
||
**返回值:** 成功或失败
|
||
|
||
**备注:** 提供 3 个 `open` 接口简化串口的参数设置,默认串口 115200,8 位数据位,1 位停止位,无奇偶校验。用户可以根据实际情况选择相应的接口。
|
||
|
||
#### 5. 关闭设备,包括关闭串口
|
||
|
||
```java
|
||
public void close()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 无
|
||
|
||
#### 6. 封装对设备的读操作
|
||
|
||
```java
|
||
public byte[] read(int len, int timeout)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --- | --- | --- |
|
||
| `len` | int | 要读取的长度 |
|
||
| `timeout` | int | 超时,单位毫秒 |
|
||
|
||
**返回值:** 读取到的字节数组,失败的话返回 `null`
|
||
|
||
#### 7. 封装对设备的写操作
|
||
|
||
```java
|
||
public boolean write(byte[] data, int len)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --- | --- | --- |
|
||
| `data` | byte[] | 要写入设备的字节数组 |
|
||
| `len` | int | 要写入的长度,应当 <= data 的实际长度 |
|
||
|
||
**返回值:** 成功或失败
|
||
|
||
## Fingerprint 类
|
||
|
||
### 使用方法
|
||
|
||
```java
|
||
import com.seuic.misc.Fingerprint;
|
||
Fingerprint fingerprint = new Fingerprint();
|
||
```
|
||
|
||
### 操作流程
|
||
|
||
`open` → `powerOn` → `read & write` → `powerOff` → `close`
|
||
|
||
> 有的指纹模块可能需要先 `powerOn` 再 `open`,请和模块厂家确认。
|
||
|
||
该类提供的函数可以分为两组,一组是用于模块的上电/断电,一组用于串口的操作。模块的上电和串口打开谁先谁后并没有严格的顺序,视具体设备要求。
|
||
|
||
### 函数接口
|
||
|
||
| 函数 | 说明 |
|
||
| --- | --- |
|
||
| `getDeviceName` | 获取设备名称 |
|
||
| `powerOn` | 设备上电 |
|
||
| `powerOff` | 设备断电 |
|
||
| `open` | 打开设备,包括打开串口,不包括上电 |
|
||
| `close` | 关闭设备,包括关闭串口,不包括断电 |
|
||
| `read` | 封装对设备的读操作 |
|
||
| `write` | 封装对设备的写操作 |
|
||
|
||
#### 1. 获取设备名称
|
||
|
||
```java
|
||
public String getDeviceName()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 该设备连接的串口设备文件,如 `/dev/ttyUART0`
|
||
|
||
#### 2. 设备上电
|
||
|
||
```java
|
||
public void powerOn()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 无
|
||
|
||
#### 3. 设备断电
|
||
|
||
```java
|
||
public void powerOff()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 无
|
||
|
||
#### 4. 打开设备,包括打开串口
|
||
|
||
```java
|
||
public boolean open()
|
||
public boolean open(int baudrate)
|
||
public boolean open(int baudrate, int dataBits, int stopBits, int parity)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `baudrate`:波特率,如 `115200`
|
||
- `dataBits`:数据位,目前支持 `5`、`6`、`7`、`8`
|
||
- `stopBits`:停止位,目前支持 `1`、`2`
|
||
- `parity`:奇偶校验
|
||
- `'n'` 或 `'N'`:无奇偶校验
|
||
- `'o'` 或 `'O'`:奇校验
|
||
- `'e'` 或 `'E'`:偶校验
|
||
- `'m'` 或 `'M'`:标记检验
|
||
- `'s'` 或 `'S'`:空白校验
|
||
|
||
**返回值:** 成功或失败
|
||
|
||
**备注:** 提供 3 个 `open` 接口简化串口的参数设置,默认串口 115200,8 位数据位,1 位停止位,无奇偶校验。用户可以根据实际情况选择相应的接口。
|
||
|
||
#### 5. 关闭设备,包括关闭串口
|
||
|
||
```java
|
||
public void close()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** 无
|
||
|
||
#### 6. 封装对设备的读操作
|
||
|
||
```java
|
||
public byte[] read(int len, int timeout)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --- | --- | --- |
|
||
| `len` | int | 要读取的长度 |
|
||
| `timeout` | int | 超时,单位毫秒 |
|
||
|
||
**返回值:** 读取到的字节数组,失败的话返回 `null`
|
||
|
||
#### 7. 封装对设备的写操作
|
||
|
||
```java
|
||
public boolean write(byte[] data, int len)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --- | --- | --- |
|
||
| `data` | byte[] | 要写入设备的字节数组 |
|
||
| `len` | int | 要写入的长度,应当 <= data 的实际长度 |
|
||
|
||
**返回值:** 成功或失败
|
||
|
||
## Manager 类
|
||
|
||
### 使用方法
|
||
|
||
```java
|
||
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
|
||
|
||
```java
|
||
public boolean enableUsb(boolean enable)
|
||
```
|
||
|
||
**参数:**
|
||
|
||
- `enable`:
|
||
- `true`:使能
|
||
- `false`:禁用
|
||
|
||
**返回值:** 设置是否成功。
|
||
|
||
#### 2. 查看 USB 使能状态
|
||
|
||
```java
|
||
public boolean isUsbEnabled()
|
||
```
|
||
|
||
**参数:** 无
|
||
|
||
**返回值:** `true` 表示使能,`false` 表示禁用。默认是使能状态。
|