【Android-通讯-蓝牙】你还不会 BLE?最全入门指南?

 


目录

前言

通过蓝牙,我们能干嘛?

在正式“摸”到别的蓝牙设备前,我们需要做点什么?

一、【权限】

二、【是否支持蓝牙】

三、【打开蓝牙】

开始真正的勾搭

一、【扫描】

二、【连接】

三、【搜索服务】

四、【打开通知通道】

五、【写入数据】


前言

在项目开发过程中,一般为了“快速开发”,我们一般除了 CV,还有就是借轮子。这次蓝牙,我也借了一个轮子,但是这个轮子有问题??

情况是这样的:在部分华为手机上使用App的蓝牙模块,会偶尔出现<针对性蓝牙服务缺失>。即:有一次手机A连上蓝牙在发现服务的时候,会缺失两个服务(其中一个是主要使用的服务),那么手机A再不做其他处理的情况下,就再也找不到那两个“丢失”的服务。但是,其他的手机又可以搜到该蓝牙设备对应的所有服务。碍于对轮子存在疑虑,于是自己动手撸了一个原生的蓝牙模块,来排除是否与轮子有关。

不如题,本文不是最全的入门指南。因为BLE蓝牙的东西着实不少,入门就不需要最全。只要整条流程能走通,对BLE的整体有概念这就是入门。对于熟悉和精通,敬请期待别的人文章吧!(也许,后面我也会更新别的文章,嘻嘻)

 

通过蓝牙,我们能干嘛?

这个问题,给了我学习的动力。通过对安卓官方文档的阅读,传送门

  • 扫描其他蓝牙设备
  • 连接其他设备(通过服务发现连接到其他设备)
  • 与其他设备进行双向数据传输
  • 管理多个连接
  • ......(查询本地蓝牙适配器的配对蓝牙设备,建立 RFCOMM 通道)

RFCOMM 是一个简单传输写协议,其目的为了解决如何在两个不同设备上的应用程序之间保证一条完整的通信路径,并在它们之间保持一通信段的问题。

 

在正式“摸”到别的蓝牙设备前,我们需要做点什么?

一、【权限】

Android 日益注重安全性,隐私化的趋势下,我们当然需要先做 权限声明 (这里不讲如何动态申请权限,如果你想轻装上阵,声明权限后,自己手动去授权即可)

  •  BLUETOOTH
  •  BLUETOOTH_ADMIN 
  •   ACCESS_FINE_LOCATION (假如我们的应用要运行在 Android9 及其以上的系统上,我们需要申请的是 ACCESS_COARSE_LOCATION )

二、【是否支持蓝牙】

如果手机设备本身不支持蓝牙,那还用个啥?(如果你不关心这个可以跳过,或者大致瞟一眼)

这个时候,引出非常重要的一个类 BluetoothAdapter 康康官方描述吧。(截取片段)

//定义:本地设备蓝牙设配器的代表
Represents the local device Bluetooth adapter.
作用-----
//1.启动设备发现
initiate device discovery.
//2.查询连接过或者配对过的设备
query a list of bonded (paired) devices.
//3.通过MAC地址获取设备
instantiate a BluetoothDevice using a known MAC address.
//4.创建连接监听
create a BluetoothServerSocket to listen for connection requests from other devices.
//5.开始扫描蓝牙设备
start a scan for Bluetooth LE devices.

我们

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q-CODER

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值