BluetoothGatt.writeCharacteristic()总是返回false。

我正在编写一个Android应用程序,使用BLE与Arduino进行通话。 我已经能够扫描设备,连接到目标,发现服务,获取特征,并阅读那些可读的。 但是,当我尝试写入可写特性时,该方法始终返回false。 当我debugging到android.bluetooth代码,发生以下序列:特性.getService()。getDevice总是返回null,这导致writeCharacteristic失败。

任何帮助是极大的赞赏!

Solutions Collecting From Web of "BluetoothGatt.writeCharacteristic()总是返回false。"

请按照相应的顺序检查您的对象。 每次我需要写入BLE设备时,我只保留BluetoothGatt对象并创buildBluetoothGattService和BluetoothGattCharacteristic。

byte[] data_to_write; // Your data BluetoothManager mBluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SREVICE); BluetoothAdapter mBluetoothAdapter = mBluetoothManager.getAdapter(); BluetoothDevice mDevice = mBluetoothAdapter.getRemoteDevice(....); BluetoothGatt mBG = mDevice.connectGatt(....); BluetoothGattService mSVC = mBG.getService(service_uuid); BluetoothGattCharacteristic mCH = mSVC.getCharacteristic(characteristic_uuid); mCH.setValue(data_to_write); mBG.writeCharacteristic(mCH); 

一些characterictics只是不可写。 上面的代码应该使用一些副作用。 (不一样的characterictics或…)