• 3370阅读
  • 0回复

[共享]MSR-BTX6 Android SDK 开发文档 [复制链接]

上一主题 下一主题
离线liangwei1362
 

只看楼主 倒序阅读 楼主  发表于: 2017-09-08
摘要: 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的所有主流操作系统。免费提供配套软件。








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
VoidbindService(Context context,ServiceBinderCallback callback)
在当前 Activity 绑定服务BTService,callback 能监听 BTService 的绑定结果。
VoidunBindService(Context context)
退出 Activity 时,解除 BTService 的绑定。
VoidstartConnection(String address)
连接蓝牙设备,address 是蓝牙设备的地址。
VoidstopConnection()
断开已经连接的蓝牙设备。
VoidsetSendCmdCallbackListener(SendCmdCallbackListener CallbackListener) 添加发送命令监听器,在已连接状态,向蓝牙设备发送命令后,返回对应结果。
VoidsetDeviceConnectionStatusListener(DeviceConnectionStatusListener listener)
监听蓝牙设备的连接状态。
VoidsendInitCmd()
发送初始化命令。
VoidsendReadCmd()
发送读卡命令。
VoidsendWriteCmd(String track1,String track2,String track3)
发送写卡命令,三个参数分别对应轨道一、二、三的数据。注意:轨道一数据长度最大不能超过 76 个字节,轨道二数据长度最大不超过 37 个字节,轨道三数据长度最大不超过 104 个字节。 三条轨道的数据不能同时为空。
VoidcheckTrackCharacter(int number,String trackString)
在发送写卡命令前,检查发送的字符是否符合轨道的数据格式,返回 true,表示格式正确;返回 false,表示格式不正确。number 代表轨道号,范围在 1-3 之间, trackString 是需要发送的数据。
Void111sendEraseCmd(int track1,int track2,int track3)
发送擦除命令,三个参数分别对应轨道一、二、三。0 表示不擦除,1 表示擦除。
VoidsendEraseCmd(int track1,int track2,int track3)
发送擦除命令,三个参数分别对应轨道一、二、三。0 表示不擦除,1 表示擦除。
VoidsendCardTypeCmd(int type)
设置高抗卡(type=0)或者低抗卡(type=1)。
VoidsendLeadingZeros(int B210,int B75)
设置轨道的前导零。建议默认值(62,22)。
VoidsendSetNameCmd(String name)
设置蓝牙设备的名字。只能由字母和数字组成
VoidgetDeviceVoltage()
获取蓝牙设备的电压和电量。
VoidstartSearchBluetoothDevice(BluetoothSearchResultCallback resultCallback)
启动蓝牙搜索。resultCallback 监控蓝牙搜索状态变化。
VoidcancelSearchBluetoothDevice()
取消蓝牙搜索

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

3、ServiceBinderCallback 详解

Public Method
VoidbinderSuccess()
BTService 绑定成功时执行
VoidbinderFailed()
BTService 绑定异常时执行


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

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


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

Constant
StaticCONNECTING_STATUS
正在连接
StaticCONNECTED_STATUS
已连接成功
StaticDISCONNECT_STATUS
断开连接
StaticCONNECT_FAILED
连接失败
Public Method
voidonStatusEvent(int status)
蓝牙设备连接状态切换


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

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


7、轨道数据的字符格式

轨道一的字符格式
0123456789
:;<=> !"#$
%&?()*+,-.
/@ABCDEFGH
IJKLMNOPQR
STUVWXYZ[]
\^_
轨道二、轨道三的字符格式
0123456789
:;<>=?


8、处理特殊异常

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



相关下载:


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

快速回复
限100 字节
 
上一个 下一个