Android BLE服务缺失特征

时间:2017-03-02 00:26:22

标签: android bluetooth-lowenergy characteristics

我正在BLE 4.2设备上运行具有自定义特征的自定义服务。我正在开发一个Android应用程序来读取/写入特征等。我尝试的第一件事是阅读特征。

我定义了一个UUID列表:     List chars = new ArrayList<>();

我使用我的已知服务UUID创建服务:     mCustomService = mBluetoothGatt.getService(MY_SERVICE_UUID);

我从我的服务中加载了4个已知UUID的列表:

chars.clear();
chars.add(UUID1);
chars.add(UUID2);
chars.add(UUID3);
chars.add(UUID4);

I read the first characteristic from the end of my list:
BluetoothGattCharacteristic mReadCharacteristic = mCustomService.getCharacteristic(chars.get(chars.size() - 1));
    if(mReadCharacteristic != null)
         mBluetoothGatt.readCharacteristic(mReadCharacteristic);

mReadCharacteristic始终返回null,该服务不包含我的特征。

如果我使用BLE"嗅探器" app然后我确实看到了所有的特征。

由于

PS我无法弄清楚这里的格式化!

1 个答案:

答案 0 :(得分:0)

我有类似的设置 - 具有自定义服务和特性的设备 - 尽管该设备是BLE 4.0。在您的应用程序中,也许您正在这样做,但在问题中没有提到它 - 但是你在调用

location = params[:location].join(',') // as string

然后触发回调mBluetoothGatt.discoverServices();。我在onServicesDiscovered处理程序中有类似的代码,它工作正常。

onServicesDiscovered public void onServicesDiscovered(BluetoothGatt gatt, int status) { if (status == BluetoothGatt.GATT_SUCCESS) {