Android低功耗蓝牙(BLE)随笔(三)

6. 设置MTU

蓝牙连接后的通讯默认MTU为23字节,被底层通讯占用了3字节,因此只能留给我们20字节,如果要增大MTU,需要使用这个方法:

    /**
     * 设置mtu
     *
     * @param mtu mtu的大小
     * @return 如果设置成功返回true,否则返回false
     */
    public boolean requestMtu(int mtu) {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && mBluetoothGatt.requestMtu(mtu);
    }

这个方法只有在Android 5.0 及以上才有。设置后也会有响应的回调方法被调用:

    private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
        @Override
        public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) {
            super.onMtuChanged(gatt, mtu, status);
            // ...
        }
    };

7. 读取rssi值

mBluetoothGatt.readRemoteRssi();

读取方法

        @Override
        public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
            super.onReadRemoteRssi(gatt, rssi, status);
            //...
        }

值在回调中返回。
rssi表示蓝牙的信号强调,为负值,值越接近与0信号强度越大。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 文章图片上传不正常,如需文档,可联系微信:1017429387 目录 1 安装... 4 1.1 配置探针... ...
    Mrhappy_a7eb阅读 11,686评论 0 5
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,878评论 1 32
  • 因为自己的项目中有用到了蓝牙相关的功能,所以之前也断断续续地针对蓝牙通信尤其是BLE通信进行了一番探索,整理出了一...
    陈利健阅读 118,632评论 172 299
  • 前言 经过一段时间的蓝牙开发接触,想总结下现实Android ble模块开发的流程以及遇到的问题。 1.初识BLE...
    大地零一阅读 13,155评论 1 11
  • 相关概念 BRBasic Rate,早期的传统蓝牙技术 V1.1, V1.2 版本,传输速率为748~810kb/...
    七零八落问号阅读 13,270评论 2 26

友情链接更多精彩内容