我正在开发一个BLE中央应用程序(服务器)并在我的三星Galaxy S8上进行测试。在我的手机决定更新之前,应用程序正在运行(从7.1.0到8.0.0)。
我正在从已知的特征/服务中进行标准读取。设备在功能
中正确连接public void onConnectionStateChange(final BluetoothGatt gatt, int status, int newState)
,预期的服务出现在函数
中public void onServicesDiscovered(final BluetoothGatt gatt, int status)
。在这两个回调中,status
等于0.所以在我调用之前,一切似乎都在工作
gatt.readCharacteristic(characteristic);
来自onServicesDiscovered
回调的,之后有一段很长的停顿,然后是对
的调用public void onCharacteristicRead(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic, int status)
当我用Log.d("DEBUG", "" + characteristic.getStringValue(0));
检查特征值时,状态等于133的和“null”。 characteristic.getValue()
也返回null。
最奇怪的是,此代码在更新之前都已成功运行。 (我现在已经将BLE代码复制到一个新项目中以隔离它,并且相信我已经从原始项目中复制了相应的权限。)
在此特定回调中会导致错误133的原因是什么?我似乎无法在文档中找到133(https://developer.android.com/reference/android/bluetooth/BluetoothGatt),所以即使只是帮助解释错误也是一个很好的步骤。