美文网首页
Android蓝牙4.0开发

Android蓝牙4.0开发

作者: 痴恋你的深吻 | 来源:发表于2016-12-28 22:38 被阅读0次

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

    4.0开发主要分为一下几步

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

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

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

    privateBluetoothManagerbluetoothManager;

    privateBluetoothAdapterbluetoothAdapter;

    privateBluetoothGattbluetoothGatt;

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

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

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

    bluetoothDevice就是们会扫描到的设备

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

    bytes代表的是广播

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

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

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

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

    adress就是刚才获得的地址

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

    连接成功后会回调bluetoothGattCallback

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


    在newBluetoothGattCallback(){}里很多方法

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

    里面还有很多方法

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

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

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

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

    gatt.readCharacteristic(characteristic);

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

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

    onCharacteristicRead

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

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

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

    5.写入值

    写入比读取要简短一下

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

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

    当调用写入的时候会回调

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

    6.最后

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

    bluetoothGatt.close();

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

    相关文章

      网友评论

          本文标题:Android蓝牙4.0开发

          本文链接:https://www.haomeiwen.com/subject/ciesvttx.html