BluetoothGatt.writeCharacteristic()总是返回false。

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

任何帮助是极大的赞赏!

  • 检测BLE设备是否可以在Android上连接
  • 为什么在Android中将autoConnect设置为true时,App不会重新连接到BLE设备?
  • Android BLE GAT特性WRITE_TYPE_NO_RESPONSE不起作用
  • Android 4.3 BTLE作为服务器:如何启动广告?
  • 采用Android 4.2(Jelly Bean)的设备支持蓝牙低功耗(BLE)
  • BluetoothLeAdvertiser是否在Android 5.0上使用Nexus 5?
  • Android 4.3:如何连接到多个蓝牙低功耗设备
  • 请按照相应的顺序检查您的对象。 每次我需要写入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或…)