因为最近公司在开发智能硬件这一块,于是就学习了下 Android 4.0 Ble 的蓝牙开发
刚开始的时候,网上找了很多博客,很多文章,但是大体都差不多,甚至很多一模一样的文章,找不到什么有用的资料,后来干脆放弃网上的资料了,自己动手,用代码来摸索。摸索了挺长时间。
扫描链接蓝牙
首先 权限肯定是要的:
创建Activity 然后写一个Listview 用来展示设备列表 这些我就不写在文档了
其次获取到蓝牙的管理类:
BluetoothManager bluetoothManager = (BluetoothManager) bluetoothService.getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter adapter = bluetoothManager.getAdapter();
开启扫描:
adapter.startLeScan(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先判断一下 是否已经在列表了 如果不在的话 就添加到listview列表上
}
});
开始连接蓝牙:
/**
* 需要连接的设备 可以从适配器当中使用MAC地址获取到设备 然后再进行链接 也可以直接从扫描到存储的列表直接取出来
*/
BluetoothDevice remoteDevice = adapter.getRemoteDevice(address);
remoteDevice.connectGatt(bluetoothService, false, new BluetoothGattCallback() {
/**
* 蓝牙设备状态的监听
*
* @param gatt
* @param status
* @param newState 蓝牙的状态被改变
*/
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
super.onConnectionStateChange(gatt, status, newState);
switch (newState) {//对蓝牙反馈的状态进行判断
case BluetoothProfile.STATE_CONNECTED://已链接
LogUtils.log("已连接");
break;
case BluetoothProfile.STATE_DISCONNECTED://已断开
LogUtils.log("已断开");
break;
}
}
});
至此 一个简单的蓝牙链接例子已经结束。之后再详解,传输数据,与读取数据和接收 Notify 通知。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于