您的位置:首页 > 移动开发 > Android开发

低功耗蓝牙(BLE)之开发步骤

2016-04-11 23:57 302 查看
Android Bluetooth源码静态类图如下:





使用低功耗蓝牙需要用到的权限:

?
下面介绍怎样使用BLE:

1、准备BLE

1)获取BluetoothAdapter

BluetoothAdapter是从系统服务获取到的,全系统就一个。

?
2)检测蓝牙是否打开

如果蓝牙未打开,系统会自动打开,会弹出系统框展示打开蓝牙。

?
2、查找BLE设备

因为扫描BLE设备是电源密集型操作,浪费电量,因此要保证以下原则:

1)扫描到需要的设备后,马上停止扫描;

2)给扫描一个时间限制

扫描示例代码如下:

?
如果只是要扫描到特定类型的设备,则使用接口
startLeScan(UUID[],
BluetoothAdapter.LeScanCallback),通过UUID来查找设备。


扫描回调的代码如下所示:


?
注意:我们既可以扫描BLE设备,也可以扫描普通蓝牙设备,也可以同时将BLE设备和普通蓝牙设备一起扫描到。

3、连接到GATT Server

获取到BluetoothGatt实例,

?
具体实例如下:


?
    其中,discoverService方式是异步的,它的回调方法是上面代码中的onServiceDiscovered。

?
?


4、读BLE属性


一旦获取到GATT的Services,就可以读写他们的属性了,实例如下:


?
  在获取Service的时候,每个蓝牙设备都会有两个默认的Service,它们和对应的UUID分别如下:

Bluetooth Generic Access Profile {00001800-0000-1000-8000-00805f9b34fb}

Bluetooth Generic Attribute Profile {00001801-0000-1000-8000-00805F9B34FB}

5、收到GATT通知


如果设备主动给手机发信息,则可以通过notification的方式,这种方式不用手机去轮询地读设备上的数据。手机可以用如下方式给设备设置notification功能。


?
    如果notificaiton方式对于某个Characteristic是enable的,那么当设备上的这个Characteristic改变时,手机上的
onCharacteristicChanged()
回调就会被促发。如下所示:

?
6、关闭客户端蓝牙

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息