MSR-BTX6 Android SDK 开发文档

BTX6是一款便携式的蓝牙磁条卡读写器,可在多种操作系统上运行,并支持市面上所有磁条卡的数据读写。本文档详细介绍了BTX6的集成步骤、核心管理类、发送命令后的返回结果监听、蓝牙设备连接状态监听等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要: 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 注册服务和添加蓝牙权限:

点击(此处)折叠或打开

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

  5. <application>
  6. … … …
  7. <service android:name="com.postech.btx6library.service.BTService"/>
  8. </application>
  9. </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
设置蓝牙设备名字,字符格式错误时,会抛出这个异常。

bVUC2M?w=584&h=274

相关下载:

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26312268/viewspace-2144694/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26312268/viewspace-2144694/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值