android蓝牙4.0编程,Android蓝牙4.0开发

我想大家都和我一样在蓝牙4.0开发中遇到不知道多少坑,特别是设备的适配问题。好了,废话也不多说直接上干货。

4.0开发主要分为一下几步

1.我门首先要来判断设备是否支持4.0android是在4.3的时候才开始支持4.0的。

这里我的是把判断是否支持4.0和是否开启放到一起的,因为只有两个都满足我们才能执行下一步。

这些对象建议设置成全局的,因为不知道在判断的时候我们要用,后面都要用

privateBluetoothManagerbluetoothManager;

privateBluetoothAdapterbluetoothAdapter;

privateBluetoothGattbluetoothGatt;

be18c0a5262d

2.设备支持并已经开启,那我们就开始扫描设备

调用扫描方法因为我们是4.0开发所以调用的是startLeScan这个是只扫描4.0设备

be18c0a5262d

调用扫描之后,会把扫描的设备通过回调给我返回

be18c0a5262d

bluetoothDevice就是们会扫描到的设备

i 代表的是设备的信号强度

bytes代表的是广播

我们可以通过bluetoothDevice获得很多设备信息

bluetoothDevice.getAddress() 获得设备的地址(获得地址到时连接要用)

(链接成功后就要停止扫描,或者根据自己的需求停止)

3.当你获得设备的地址之后就可以连接设备了

be18c0a5262d

adress就是刚才获得的地址

false是代表断开后不重新连接

连接成功后会回调bluetoothGattCallback

4.连接以后进行数据的读取和写入

be18c0a5262d

在newBluetoothGattCallback(){}里很多方法

onConnectionStateChange里面我们执行发现服务的操作gatt.discoverServices()

里面还有很多方法

当发现服务完成之后就会回调下的方法

be18c0a5262d

在这里我就可以gatt.getServices();获得所有的服务然后通过服务在获得所以的特征

be18c0a5262d

两个for循环分别获得的是服务的uuid和特征的uuid我这里是把获得的uuid添加到list集合为了显示,你门可以根据自己的需求来做处理,(uuid就是我读写每一个特征的标记)

如果你要读取某一个uuid (必须是特征的)调用

gatt.readCharacteristic(characteristic);

这里的characteristic就包含这你要读取的uuid characteristic.getUuid();要和你想获取的相同才可以。

当你调用读取之后会回调下面的方法

onCharacteristicRead

be18c0a5262d

在这个可以通过getValue或得值,当然获得的值是二进制数据,需要转换

这里最好在判断一下uuid是否是你要读去的uuid在getValue

读去说完现在我们来说写入值

5.写入值

写入比读取要简短一下

characteristic.setValue(这里是你要写入的值(必须是二进制));

gatt.writeCharacteristic(characteristic);//值添加完成之后调用这个

当调用写入的时候会回调

be18c0a5262d

在这里面调用characteristic.getValue()可以获得你写入的值,判断是否相同就可以知道是否写入成功

6.最后

我们肯定是要关闭扫描断开蓝牙

bluetoothGatt.close();

周期我发布一个帮助蓝牙4.0开发的工具,但是现在网址域名还没备案完成暂时不发布,到时候,会把地址填写在下面,如果你是大神请绕行!谢谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值