Ble MTU协商不起作用:在ble应用程序中未触发onMTUchanged回调

时间:2018-11-23 07:18:38

标签: bluetooth-lowenergy mtu

我正在开发BLE应用程序。我是ble概念的新手。我请求512的MTU。但是不会触发onMTUchanged的回叫。使用的操作系统为Android 8.1.0,电话为Moto G(5s)。 APK为27。 代码如下:

         if (newState == BluetoothProfile.STATE_CONNECTED) {

                Log.i(TAG, "Connected to a remote GATT server.");

                mBluetoothGatt.requestMtu(512);

          } 

 @Override
    public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) {
        Log.i(TAG,"onMtuChanged" );
        super.onMtuChanged(gatt, mtu, status);

        if (status == BluetoothGatt.GATT_SUCCESS) {
           BleDataExchangeClientActivity.this.supportedMTU = mtu;
            if(mBluetoothLeService.discoverServices(mBluetoothGatt)) {
                Log.i(TAG, "Attempting to start service discovery");
            }

        }
    }

我将日志附加如下:

2018-11-23 12:11:28.054 12277-12291/com.comodevapp 
D/BluetoothGatt: configureMTU() - device: 11:22:33:A4:A5:A6 mtu: 512
2018-11-23 12:11:28.914 12277-12291/com.comodevapp D/BluetoothGatt: 
onConfigureMTU() - Device=11:22:33:A4:A5:A6 mtu=23 status=0
2018-11-23 12:17:08.519 12277-12290/com.comodevapp D/BluetoothGatt: 

请帮助我。

0 个答案:

没有答案