低功耗蓝牙开发(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监听对象上,我们从监听方法中可以获取设备返回的数据。

 
   
 
 
 
 

转载于:https://www.cnblogs.com/x-bing/p/5916465.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值