Android藍芽2.0的使用方法:
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u010046908/article/details/50610297
Android 藍芽2.0的使用方法
1.Android操作藍芽2.0的使用流程
(1)找到裝置uuid
(2)獲取藍芽介面卡,使得藍芽處於可發現模式,獲取下位機的socket,並且與上位機建立建立連線,
獲取獲取輸入流和輸出流,兩個流都不為空時,表示連線成功。否則是連線失敗。
(3).與下位機的socket開始通訊。
(4).通訊結束後,斷開連線(關閉流,關閉socket)
2接下來接直接上程式碼:
2.1找到裝置uuid(一般廠商都會給開發者提供)
UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
2.2與藍芽裝置建立連線
BluetoothAdapter myBluetoothAdapter = null;//藍芽介面卡
BluetoothServerSocket mBThServer = null;//上位機<span style="font-family: Arial, Helvetica, sans-serif;">ServerSocket</span>
BluetoothSocket mBTHSocket = null;//下位機的socket
InputStream mmInStream = null;//輸入流
OutputStream mmOutStream = null;//輸出流
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
myBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//獲取介面卡
Set<BluetoothDevice> pairedDevices = myBluetoothAdapter
.getBondedDevices();//獲取介面卡下的所有藍芽裝置
if (pairedDevices.size() > 0) {
for (Iterator<BluetoothDevice> iterator = pairedDevices
.iterator(); iterator.hasNext();) {
BluetoothDevice device = (BluetoothDevice) iterator
.next();
if (DEVICE_NAME1.equals(device.getName())
|| DEVICE_NAME2.equals(device.getName())
|| DEVICE_NAME3.equals(device.getName())
|| DEVICE_NAME4.equals(device.getName())) {
try {
myBluetoothAdapter.enable();//將介面卡設定可用
Intent discoverableIntent = new Intent(
BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);// 使得藍芽處於可發現模式,持續時間150s
discoverableIntent
.putExtra(
BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
150);
mBTHSocket = device
.createRfcommSocketToServiceRecord(MY_UUID);//獲取下位機的socket
int sdk = Integer.parseInt(Build.VERSION.SDK);
if (sdk >= 10) {
mBTHSocket = device
.createInsecureRfcommSocketToServiceRecord(MY_UUID);
} else {
mBTHSocket = device
.createRfcommSocketToServiceRecord(MY_UUID);
}
mBThServer = myBluetoothAdapter
.listenUsingRfcommWithServiceRecord(
"myServerSocket", MY_UUID);監聽可用的裝置
mBTHSocket.connect(); // 建立連線
mmInStream = mBTHSocket.getInputStream();// 獲取輸入流
mmOutStream = mBTHSocket.getOutputStream();// 獲取輸出流
} catch (IOException e) {
ett.setText("裝置連線異常!");
}
if ((mmInStream != null) && (mmInStream != null))// 二者不為空時,表示連線成功,否則連線失敗
{
ett.setText("裝置連線成功!");
} else {
ett.setText("裝置連線失敗!");
}
break;
}
}
}
}
2.3開始傳送資料,並且讀取資料(位元組陣列)
if ((mmInStream == null) || (mmInStream == null)) {
Readflage = -2;// 連線異常
return;
}
mmOutStream.write(cmd_find);//寫入查詢指令
Thread.sleep(200);
int datalen = mmInStream.read(recData);//讀取資料
注意:cmd_find和recData都是位元組陣列byte[].
以上程式碼就一次傳送指令和讀取資料的步驟。很簡單吧
2.4斷開連線
if ((mmInStream == null) || (mmInStream == null)) {
return;
}
//關閉流和socket
mmOutStream.close();
mmInStream.close();
mBTHSocket.close();
mBThServer.close();
最後總結一下,基本就3大步,第一建立連線,第二傳送資料讀取資料,第三步斷開連線。今天就這些了,以後會寫關於藍芽4.0 ble 在Android中的使用,這兩個還是有很多不同的,大家請期待
相關文章
- Android藍芽使用詳解(普通藍芽)Android藍芽
- 熊晨灃藍芽實戰--小程式藍芽連線2.0藍芽
- Android藍芽協議-藍芽掃描 startDiscoveryAndroid藍芽協議
- Android藍芽那點事——深入瞭解藍芽BlE藍芽 《總結篇》Android藍芽
- Android藍芽那點事——深入瞭解Android藍芽Bluetooth《進階篇》Android藍芽
- Android開發--藍芽操作Android藍芽
- Android-藍芽聊天demoAndroid藍芽
- Android Ble藍芽入門Android藍芽
- Android 開啟藍芽流程Android藍芽
- Android 4.2藍芽介紹Android藍芽
- BLE藍芽那些事—深入瞭解Android藍芽Bluetooth基礎篇藍芽Android
- android藍芽BLE(三) —— 廣播Android藍芽
- android藍芽BLE(二) —— 通訊Android藍芽
- android藍芽BLE(一) —— 掃描Android藍芽
- Android 傳統藍芽開發Android藍芽
- Android 藍芽音響開發Android藍芽
- android 4.0 藍芽分析之一Android藍芽
- android 4.0 藍芽分析之二Android藍芽
- Android藍芽串列埠通訊Android藍芽串列埠
- 遠端攻擊Android藍芽Android藍芽
- Android 低功耗藍芽的那點事Android藍芽
- iOS藍芽開發 Bluetooth藍芽CoreBluetooth 藍芽中心裝置的實現 藍芽外設的實現 有DemoiOS藍芽
- 藍芽藍芽
- Android藍芽開發流程實踐Android藍芽
- Android BLE藍芽詳細解讀Android藍芽
- Android 經典藍芽簡單整合Android藍芽
- Android藍芽開發全面總結Android藍芽
- Android藍芽4.0(ble)開發的解決方案Android藍芽
- 藍芽模組藍芽模組
- iOS 藍芽iOS藍芽
- ios 藍芽iOS藍芽
- Android藍芽讀取簡訊調研Android藍芽
- Android:藍芽實現一對一聊天Android藍芽
- 藍芽HFP 藍芽電話剖析(二) --- AT command集合藍芽
- 深入瞭解Android藍芽Bluetooth——《基礎篇》Android藍芽
- Android 低功耗藍芽簡單整合記錄Android藍芽
- Android學習筆記之藍芽通訊...Android筆記藍芽
- Android Studio 藍芽 示例程式碼(轉)Android藍芽