zoukankan      html  css  js  c++  java
  • Android蓝牙BLE低功耗相关简单总结

    在看Android4.42的源代码时看到有加入对BLE设备的处理。看的一头雾水,多方百度,最终有种柳暗花明的感觉。

    本文总结来源于百度多篇文章,欢迎转载。分享交流

    BLE蓝牙概念

    BLE:Bluetooth low Energy  低能耗蓝牙,实现低成本,短距离的无线传输。传输速率于传统蓝牙同样位2.4GHZ。採用很高速的连接方式,适用于发送数据量少并且发送次数较少的蓝牙通信

    相比于传统蓝牙

    • BLE蓝牙设备的传输距离最远可达100米
    • 发送数据所需时间短(<3ms)
    • 响应延时时间短(6ms)
    • 低能耗
    • 主要应用于仅仅能穿戴,汽车。家用电子等

    BLE通信协议

    在进行BLE通信时通信两方分为外围(Periphery)和中央(Central)

    1,外围用于提供数据

    2。中央用于接收和处理数据

    相当于集中式布局。中央可接收多个外围的数据,但外围仅仅能向一个中央发送数据,也就是说一个中央同一时候可连接多个外围设备,但一个外围设备仅仅能连接一个中央

    3,主要类

    i>,BluetoothGattServer:外围设备要发送的数据

    ii>。BluetoothServerCallback:返回外围设备的状态

    iii>,BluetoothGatt:中央使用和处理数据

    iv>。BluetoothGattCallBack:返回中央设备的状态


    使用ble通信能够包括多个Profile,一个profile能够包括多个service。一个service能够包括多个特征characteristic。

    眼下所使用的Android手机仅仅能作为中央使用和处理数据,接下来介绍下怎样去创建一个中央

    创建中央(Central)

    • 在配置文件里加入蓝牙的权限
    • 获取本地蓝牙适配器mBluetoothAdapter = BluetoothAapter.getDefaultAdapter()
    • 扫描附近可用的BLE蓝牙设备mBluetoothAdapter.startLeScan(mLeScanCallback);传入的參数对象为BluetoothAdapter.LeScanCallback。
    • 搜索到ble设备时会回调onLeScan方法,获取到BluetoothDevice
    • 利用所获取的device调用连接方法device.connectGatt(......)方法。方法返回BluetoothGatt对象

    /**
    *第一个參数为上下文,context
    *第二个參数为autoConnect。布尔值
    *第三个參数为BluetoothAdapter.LeScanCallback对象,连接后回调,在回调中能够获取到手机的蓝牙连接状态
    */
    mBluetoothGatt = device.connectGatt(BluetoothCODAService.this, false, mGattCallback);

    • 在连接成功后就能够搜索服务进行通信了。利用获取到的BluetoothGatt对象。mBluetoothGatt.discoveryServices()能够搜索服务。在搜索到服务后会触发onServicesDiscovered()方法。若status位BluetoothGatt.GATT_SUCCESS代表搜索成功
    • 在搜索到服务后调用mBluetoothGatt.getService()来获取BluetoothGattService列表
    • 单个BluetoothGattService对象调用gattService.getCharacteristics()方法获取到BluetoothGattCharacteristic列表
    • 获取到特征之后能够调用API的方法来获取所须要的信息


  • 相关阅读:
    Statspack之十四"log file sync" 等待事件
    log file sync(日志文件同步) 与 Log file parallel write 等待事件(1)
    OWI诊断的步骤(基础)
    linux下防火墙配置
    linux中oracle开机启动(2)
    Linux开机自动启动ORACLE设置
    linux find mtime参数详解
    linux 下 rman自动备份
    JSTL 标签库 下载及配置
    JSTL I18N 格式标签库 使用之一_____数字日期格式化
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7381878.html
Copyright © 2011-2022 走看看