本文章是参考官网,然后加入自己实践中的理解完成!没有看上一篇的读者,可以先阅读一下前一篇,这是一个系列。
Android 蓝牙开发(1) 官网地址:https://developer.android.com/guide/topics/connectivity/bluetooth-le
Android 4.3 (API 18 )引入了低功耗蓝牙,应用可以查询周围设备、查询设备的服务、传输信息。
Android 设备和 BLE 设备交互时应用的角色和职责
应用在使用蓝牙设备的时候必须要声明蓝牙权限 BLUETOOTH
需要这个权限才可以进行蓝牙通信,例如:请求连接、接受连接、和传输数据。
如果还需要发现或者操作蓝牙设置,则需要声明 BLUETOOTH_ADMIN
权限。使用这个权限的前提是要有 BLUETOOTH
权限。
如果要声明我们的应用仅适用于支持 BLE 的设备,需要清单文件中做如下声明
<uses-feature android:name = "android.hardware.bluetooth_le" android:required = true />
如果我们希望我们的应用程序在不支持 BLE 的设备上也可以运行的时候,只需要将 true 修改成 false 就可以了。
还可以在代码中作出判断
java if(!getPackageManager().hasSystemFeature(PackgeManger.FEATURE_BLUETOOTH_LE)){ // 不支持 BLE 设备 }¨G1Gjava public class BluetoothLeService extends Service{ private final static String TAG = BluetoothLeService.class.getSimpleName(); private BluetoothManger bluetoothManger; private BluetoothAdapter bluetoothAdapter; private String bluetoothDeviceAddress; private BluetoothGatt bluetoothGatt; private int connectionState = STATE_DISCONNECTED;¨K13K}
当触发特定的回调的时候,会调用适当的 broadcastUpdate() 辅助方法并向其传递操作。具体的数据解析格式是根据配置文件规范执行的(是你和你的BLE 设备共同约定好的规范)
大体的过程中:开启连接,然后会触发对应的连接回调,然后发现服务,触发发现服务回调,获取服务内部的特征值,对其读写命令(和 BLE 共同约束的规范)。就是这么一个过程,很简单。
读 BLE 属性
一旦我们的 Android 设备连接到了 GATT 服务器并发现了服务,我们就可以在支持的位置读取或者写入属性了。
完成后要记得关闭设备 bluetoothGatt.close();
关于蓝牙框架的一个库:https://github.com/Alex-Jerry/Android-BLE
本文分享自 Android开发者家园 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!