MSR-BTX6 Android SDK 开发文档

1、在项目集成 MSR-BTX6 SDK

首先需要在 AndroidManifest.xml 注册服务和添加蓝牙权限:

<manifest>
… … …
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

<application>
… … …
<service android:name="com.postech.btx6library.service.BTService"/>
</application>
</manifest>

2、核心管理类 Management 详解:

 

Public Static Method
Void bindService(Context context,ServiceBinderCallback callback)
在当前 Activity 绑定服务BTService,callback 能监听 BTService 的绑定结果。
Void unBindService(Context context)
退出 Activity 时,解除 BTService 的绑定。
Void startConnection(String address)
连接蓝牙设备,address 是蓝牙设备的地址。
Void stopConnection()
断开已经连接的蓝牙设备。
Void setSendCmdCallbackListener(SendCmdCallbackListener CallbackListener) 添加发送命令监听器,在已连接状态,向蓝牙设备发送命令后,返回对应结果。
Void setDeviceConnectionStatusListener(DeviceConnectionStatusListener listener)
监听蓝牙设备的连接状态。
Void sendInitCmd()
发送初始化命令。
Void sendReadCmd()
发送读卡命令。
Void sendWriteCmd(String track1,String track2,String track3)
发送写卡命令,三个参数分别对应轨道一、二、三的数据。注意:轨道一数据长度最大不能超过 76 个字节,轨道二数据长度最大不超过 37 个字节,轨道三数据长度最大不超过 104 个字节。 三条轨道的数据不能同时为空。
Void checkTrackCharacter(int number,String trackString)
在发送写卡命令前,检查发送的字符是否符合轨道的数据格式,返回 true,表示格式正确;返回 false,表示格式不正确。number 代表轨道号,范围在 1-3 之间, trackString 是需要发送的数据。
Void 111sendEraseCmd(int track1,int track2,int track3)
发送擦除命令,三个参数分别对应轨道一、二、三。0 表示不擦除,1 表示擦除。
Void sendEraseCmd(int track1,int track2,int track3)
发送擦除命令,三个参数分别对应轨道一、二、三。0 表示不擦除,1 表示擦除。
Void sendCardTypeCmd(int type)
设置高抗卡(type=0)或者低抗卡(type=1)。
Void sendLeadingZeros(int B210,int B75)
设置轨道的前导零。建议默认值(62,22)。
Void sendSetNameCmd(String name)
设置蓝牙设备的名字。只能由字母和数字组成
Void getDeviceVoltage()
获取蓝牙设备的电压和电量。
Void startSearchBluetoothDevice(BluetoothSearchResultCallback resultCallback)
启动蓝牙搜索。resultCallback 监控蓝牙搜索状态变化。
Void cancelSearchBluetoothDevice()
取消蓝牙搜索

注意:发送读卡、写卡、擦除命令后,再发送下一个命令前,需要先发送初始化命令
对设备进行初始化。

3、ServiceBinderCallback 详解

Public Method
Void binderSuccess()
BTService 绑定成功时执行
Void binderFailed()
BTService 绑定异常时执行

4、发送命令完毕,监听返回结果,SendCmdCallbackListener 详解

Public Method
Void receiveInitResult(boolean initFlag)
initFlag = true 时,表示初始化成功,否则,表示失败。
Void receiveReadResult(String track1,String track2,String track3)
接收读卡数据,track1 表示轨道一的数据,track2 表示轨道二的数据,track3 表示轨道三的数据。
Void writeCmdCallback(boolean writeCmd)
writeCmd = true 时,表示写卡命令发送成功,否则,失败。
Void receiveWriteResult(boolean writeFlag)
writeFlag = true 时,表示写入轨道的数据正确,否则,错误。
Void receiveCardTypeResult(boolean typeFlag)
typeFlag = true 时,表示高抗或者低抗卡设置成功,否则,失败。
Void receiveEraseResult(boolean eraseFlag)
eraseFlag = true 时,表示擦除命令发送成功,否则,失败。
Void receiveSetupCardResult(boolean setupFlag)
setupFlag = true 时,表示前导零设置成功,否则,失败。
Void receiveSetNameResult(boolean nameFlag)
修改蓝牙设备的名字后,会断开蓝牙,这里没有消息返回。
Void receiveElectricityResult(boolean flag,String voltage,String energy)
获取蓝牙设备的电压(voltage),电量(energy);flag = false 时,表示电压低,voltage和 energy 的值都等于 Low。
Void receiveEmptyCardResult()
当擦除所有的轨道数据时,可以在这提示轨道数据已完全擦除。
Void recordSwipeCardCounter(int counter)
记录读卡,写卡,擦除的成功次数。
Void receiveSwipeCardErrorResult()
刷卡错误时执行,可以在这里作出提示。

5、DeviceConnectionStatusListener 详解,用来获取蓝牙设备的连接状态。

Constant
Static CONNECTING_STATUS 
正在连接
Static CONNECTED_STATUS 
已连接成功
Static DISCONNECT_STATUS 
断开连接
Static CONNECT_FAILED 
连接失败
 
Public Method
void onStatusEvent(int status) 
蓝牙设备连接状态切换

6、BluetoothSearchResultCallback 详解,调用 startSearchBluetoothDevice()搜索蓝牙时,需要传入 BluetoothSearchResultCallback 对象。

Public Method
void notSupportBluetooth()
手机不支持蓝牙时执行。
void bluetoothDisable(BluetoothAdapter bluetoothAdapter)
手机蓝牙没有开启时执行, 可以用 bluetoothAdapter.enable()开启。
void startSearch()
启动手机蓝牙搜索时执行,可以在这做预加载。
void getSearchResult(String deviceName,String deviceAddress)
在这获取蓝牙设备的名字和地址。
void searchingBluetoothDevice()
正在搜索蓝牙。在蓝牙搜索没有停止之前,再次启动蓝牙搜索时执行。
void searchFinished()
蓝牙搜索结束时执行。

7、轨道数据的字符格式

轨道一的字符格式
0 1 2 3 4 5 6 7 8 9
: ; < = >   ! " # $
% & ? ( ) * + , - .
/ @ A B C D E F G H
I J K L M N O P Q R
S T U V W X Y Z [ ]
\ ^ _
轨道二、轨道三的字符格式
0 1 2 3 4 5 6 7 8 9
: ; < > = ?

8、处理特殊异常

AllTrackDataNullException
当发送写卡命令,三个参数都为 null 时,会抛出这个异常。
TrackLengthException
当发送写卡命令,轨道数据长度超出限定长度时,会抛出这个异常。
TrackCharacterFormatException
当发送写卡命令,轨道数据的字符格式错误时,会抛出这个异常。
DeviceNameFormatException
设置蓝牙设备名字,字符格式错误时,会抛出这个异常。

BTX6是世界上唯一一款蓝牙磁条卡读写器,由深圳市优力科创自主研发生产,可以在无电源接入的情况下读取与写入市面上所有的磁条卡数据,BTX6体积小很小,便于携带重量只有138.7克,内置450毫安锂电池,连续工作时间超过了3小时。通过无线蓝牙与手机,平板电脑,笔记本等设备连接,兼容Windows 7,8,Vista,Xp,2000(32&64位)MacBook Air,MacBook Pro,Mac Mini,Mac Pro,iMac)、Unix,Linux、ios,Android的所有主流操作系统。免费提供配套软件。

相关下载:

BTX6 安卓中文版说明书
BTX6 Android SDK 开发包

posted @ 2017-09-08 14:13  科趣网  阅读(494)  评论(0编辑  收藏  举报