未能与自定义服务建立连接

时间:2017-08-15 04:34:00

标签: android android-studio arduino bluetooth-lowenergy

我目前拥有一台LilyPad Simblee BLE板 - RFD77101,我正试图与我在arduino 1.6.5 IDE中使用Simblee.customUUID命令定义的自定义服务建立连接。< / p>

我后来尝试使用我之前建立的UUID,使用BluetoothleGatt示例代码获取Android Studio中的服务和特性。

问题是当我连接到Simblee时,应用程序无法识别该服务并将以下错误记录下来。

  

找不到自定义BLE服务

代码有点长,因此我没有直接发布所有内容。如果有人对我的问题和需求以及部分代码的解决方案有所了解,我显然非常乐意发布它。

提前感谢任何人。

这是我试图获得特征的公共空白:

public void readCustomCharacteristic() {
  if (mBluetoothAdapter == null || mBluetoothGatt == null) {
    Log.w(TAG, "BluetoothAdapter not initialized");
    return;
  }
  /*check if the service is available on the device*/
  BluetoothGattService mCustomService = mBluetoothGatt.getService(UUID.fromString("fe84-0000-1000-8000-00805f9b34fb"));
  if(mCustomService == null) {
    Log.w(TAG, "Custom BLE Service not found");
    return;
  }
  /*get the read characteristic from the service*/
  BluetoothGattCharacteristic mReadCharacteristic = mCustomService.getCharacteristic(UUID.fromString("2d30c083-f39f-4ce6-923f-3484ea480596"));
  if(!mBluetoothGatt.readCharacteristic(mReadCharacteristic)) {
    Log.w(TAG, "Failed to read characteristic");
  }
}

1 个答案:

答案 0 :(得分:0)

BluetoothGattService mCustomService = mBluetoothGatt.getService(UUID.fromString("fe84-0000-1000-8000-00805f9b34fb"));

您提供的UUID格式不正确。根据文档,第一个连字符之前的部分应该包含4个十六进制八位字节(请参阅您提供的特性),但这里只有2个。您应该在前面添加填充0,如

BluetoothGattService mCustomService = mBluetoothGatt.getService(UUID.fromString("0000fe84-0000-1000-8000-00805f9b34fb"));

编辑:在这里缺少一点。你有没有打电话给mBluetoothGatt.discoverServices()?