Android藍牙4.0 Ble讀寫數(shù)據(jù)詳解 -1
因為最近公司在開發(fā)智能硬件這一塊,于是就學習了下Android 4.0 Ble的藍牙開發(fā)
首先 權限肯定是要的:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
創(chuàng)建Activity 然后寫一個Listview 用來展示設備列表 這些我就不寫在文檔了
其次獲取到藍牙的管理類:
BluetoothManager bluetoothManager = (BluetoothManager) bluetoothService.getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter adapter = bluetoothManager.getAdapter();
開啟掃描:
BluetoothAdapter.LeScanCallback leScanCallback = new BluetoothAdapter.LeScanCallback() {
/**
*
* @param device 掃描到的設備
* @param rssi
* @param scanRecord
*/
@Override
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {
String address = device.getAddress();
String name = device.getName();
// 然后將device先判斷一下 是否已經(jīng)在列表了 如果不在的話 就添加到listview列表上
}
};
adapter.startLeScan(leScanCallback);
停止掃描
adapter.stopLeScan(leScanCallback);
開始連接藍牙:
/**
* 需要連接的設備 可以從適配器當中使用MAC地址獲取到設備 然后再進行鏈接 也可以直接從掃描到存儲的列表直接取出來
*/
BluetoothDevice remoteDevice = adapter.getRemoteDevice(address);
remoteDevice.connectGatt(bluetoothService, false, new BluetoothGattCallback() {
/**
* 藍牙設備狀態(tài)的監(jiān)聽
*
* @param gatt
* @param status
* @param newState 藍牙的狀態(tài)被改變
*/
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
super.onConnectionStateChange(gatt, status, newState);
switch (newState) {//對藍牙反饋的狀態(tài)進行判斷
case BluetoothProfile.STATE_CONNECTED://已鏈接
LogUtils.log("已連接");
break;
case BluetoothProfile.STATE_DISCONNECTED://已斷開
LogUtils.log("已斷開");
break;
}
}
});
至此 一個簡單的藍牙鏈接例子已經(jīng)結束。之后再詳解,傳輸數(shù)據(jù),與讀取數(shù)據(jù)和接收Notify通知。