• 低功耗蓝牙开发(BLE)


    蓝牙:蓝牙是一个标准的无线通讯协议,他是通过无线电介质传输数据的

    无线电:是指在自由空间(包括空气和真空)传播的电磁波

    电磁波:是由同向且相互垂直的电场与磁场在空间中衍生发射的震荡粒子波,根据频率的由低到高依次可分为:无线电波,微波,红外线,可见光,紫外线,X射线,y射线

    电磁波传递信息:首先把传输的声音数据信号转换为电信号,再把该电信号寄载在比该信号频率高的多的高频震荡信号,最后用发射天线以无线电波的形式向周围空间传播。在接收端,接收到这种高频震荡信号,从中取出携带的声音信号。

    利用频率变换技术让低频信号控制高频震荡信号的某一参数,是这些参数随着低频信号而变化:称为调制
    高频信号:称为载波
    高频信号的频率:称为载频或者射频
    含有信息的低频信号:称为调制信号
    把经过调制的信号:称为已调信号
    取出携带的低频信号:称为解调

    支持:android4.3(18)及以上

    【术语】
    1、profile
    profile可以理解为一种规范,一个标准的通信协议,它存在于从机中。蓝牙组织规定了一些标准的profile,例如 HID OVER GATT ,防丢器,心率计等。每个profile中会包含多个service,每个service代表从机的一种能力。
    2、service
    service可以理解为一个服务,在ble从机中,通过有多个服务,例如电量信息服务、系统信息服务等,每个service中又包含多个characteristic特征值。每个具体的characteristic特征值才是ble通信的主题。比如当前的电量是80%,所以会通过电量的characteristic特征值存在从机的profile里,这样主机就可以通过这个characteristic来读取80%这个数据
    3、characteristic
    characteristic特征值,ble主从机的通信均是通过characteristic来实现,可以理解为一个标签,通过这个标签可以获取或者写入想要的内容。
    4、descriptor
    对应characteristic的描述,一个characteristic可以添加多个descriptor
    5、UUID
    UUID,统一识别码,我们刚才提到的service和characteristic和descriptor,都需要一个唯一的uuid来标识
     
    a、打开蓝牙
    1、BluetoothAdapter.enable() 
    2、startActivityForResult(){action-->BluetoothAdapter.ACTION_REQUEST_ENABLE}
    相同:两种方法都可打开蓝牙。
    不同点: enable方法更加编程化,无对话确认框(但在开启蓝牙访问权限时被系统拦截),跳转出一个透明的Activity并弹出是否开启蓝牙的确认对话框
     
    b、关闭蓝牙
    BluetoothAdapter.disable() 
     
    c、扫码周边设备
    可通过两种方式搜索设备:
    1、主动搜索回调: BluetoothAdapter.startLeScan扫码所有所有周边设备(含已经连接配对过的),通过LeScanCallback回调获取结果
    2、设备发现广播:BluetoothAdapter.startDiscovery,注册BroadcastReceiver监听查找到设备的Action(BluetoothDevice.ACTION_FOUND)
    差异:
    ① 如果同时使用则方式2优先级高于方式1(发现设备无回调)        ②方式2收到广播且重复数据(重复收到发现某个设备)
    ③方式2会在指定时间内自动停止(会扫描到重复设备很消耗电量) ④方式1需要主动调用BluetoothAdapter.stopLeScan
    汇总:ble设备扫描最好用1,经典蓝牙设备搜索最好用2,因为在某些手机上使用2不能搜索到ble设备。
     
    d.通信:

    2:扫描到的蓝牙设备对象,调用该对象的connectGatt方法可以连接到该设备,并返回BluetoothGatt对象

    1.BluetoothGatt对象为通信对象,通过该对象可以写特征,读特征,写描述等等

    3.为通信监听对象当我们使用BluetoothGatt对象读特征之后,设备会发送数据到BluetoothGattCallback监听对象上,我们从监听方法中可以获取设备返回的数据。

    
    
     
     
     
     
  • 相关阅读:
    python hmac解密
    pymongo加索引以及查看索引例子
    语音-数字中继-E1-学习帖
    Partition does not start on physical sector boundary
    吃自助餐怎么样一个顺序吃法才合算?
    关于ROS证书导入的步骤
    MikroTik-ROS-无线设备传输距离
    这个移动通讯中 DB 、DBm 、瓦的基本知识的问题:
    涨姿势 | 无线通讯距离现场评估知多少?
    linux下生成https的crt和key证书
  • 原文地址:https://www.cnblogs.com/x-bing/p/5916465.html
Copyright © 2020-2023  润新知