首先須要在 AndroidManifest.xml 註冊服務和添加藍牙權限:html
<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>
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) 發送寫卡命令,三個參數分別對應軌道1、2、三的數據。注意:軌道一數據長度最大不能超過 76 個字節,軌道二數據長度最大不超過 37 個字節,軌道三數據長度最大不超過 104 個字節。 三條軌道的數據不能同時爲空。 |
Void | checkTrackCharacter(int number,String trackString) 在發送寫卡命令前,檢查發送的字符是否符合軌道的數據格式,返回 true,表示格式正確;返回 false,表示格式不正確。number 表明軌道號,範圍在 1-3 之間, trackString 是須要發送的數據。 |
Void | 111sendEraseCmd(int track1,int track2,int track3) 發送擦除命令,三個參數分別對應軌道1、2、三。0 表示不擦除,1 表示擦除。 |
Void | sendEraseCmd(int track1,int track2,int track3) 發送擦除命令,三個參數分別對應軌道1、2、三。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() 取消藍牙搜索 |
注意:發送讀卡、寫卡、擦除命令後,再發送下一個命令前,須要先發送初始化命令
對設備進行初始化。android
Public Method | |
Void | binderSuccess() BTService 綁定成功時執行 |
Void | binderFailed() BTService 綁定異常時執行 |
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() 刷卡錯誤時執行,能夠在這裏做出提示。 |
Constant | |
Static | CONNECTING_STATUS 正在鏈接 |
Static | CONNECTED_STATUS 已鏈接成功 |
Static | DISCONNECT_STATUS 斷開鏈接 |
Static | CONNECT_FAILED 鏈接失敗 |
Public Method | |
void | onStatusEvent(int status) 藍牙設備鏈接狀態切換 |
Public Method | |
void | notSupportBluetooth() 手機不支持藍牙時執行。 |
void | bluetoothDisable(BluetoothAdapter bluetoothAdapter) 手機藍牙沒有開啓時執行, 能夠用 bluetoothAdapter.enable()開啓。 |
void | startSearch() 啓動手機藍牙搜索時執行,能夠在這作預加載。 |
void | getSearchResult(String deviceName,String deviceAddress) 在這獲取藍牙設備的名字和地址。 |
void | searchingBluetoothDevice() 正在搜索藍牙。在藍牙搜索沒有中止以前,再次啓動藍牙搜索時執行。 |
void | searchFinished() 藍牙搜索結束時執行。 |
軌道一的字符格式 | |||||||||
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 | [ | ] |
\ | ^ | _ |
軌道2、軌道三的字符格式 | |||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
: | ; | < | > | = | ? |
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的全部主流操做系統。免費提供配套軟件。ios