Android: UUID пользовательской службы моего периферийного устройства BLE не находит - PullRequest
0 голосов
/ 28 марта 2020

Одно из моих приложений работает как периферийное устройство Bluetooth, я добавляю одну пользовательскую службу и 3 характеристики. Мое клиентское приложение после подключения к периферийному устройству обнаруживает его службы, но UUID моей службы различается у разных клиентов. Одно из моих устройств Samsung прекрасно возвращает UUID, которое я добавил при рекламе своей услуги, в то время как другое устройство показывает другой UUID. Пока я проверяю характеристики внутри сервиса, если UUID сервиса не совпадает, но удивительно, что все характеристики внутри сервиса. Но сервис UUID - это не то, что я добавил в свой сервис.

Вот мой код, который обнаруживает услуги

if(newState == BluetoothProfile.STATE_CONNECTED) {
                isConnected =true;
                Log.i(BluetoothClientActivity.class.getSimpleName(),
                        "Connected to GATT server.");
                // Attempts to discover services after successful connection.
                Log.i(BluetoothClientActivity.class.getSimpleName(),
                        "Attempting to start service discovery:");
                gatt.discoverServices();

            }

Пример кода добавления пользовательской службы с тремя характеристиками

UUID PRIMARY_SERVICE = UUID.fromString("145d6dba-7064-11ea-bc55-0242ac130003");
    mSampleService = new BluetoothGattService(PRIMARY_SERVICE, BluetoothGattService.SERVICE_TYPE_PRIMARY);

    mSampleService.addCharacteristic(characteristic1);
    mSampleService.addCharacteristic(characteristic2);
    mSampleService.addCharacteristic(characteristic3);

есть ли способ идентифицировать мой сервис и характеристики внутри, которые можно использовать для связи между сервером и клиентом.

List<BluetoothGattService> services = gatt.getServices();
for(Service service:services){
      if(service.getUuid().toString().equals(SERVICE_UUID_STRING)){
         Log.e(TAG,"Found");
     }else{
        Log.e(TAG,"Not Found");
     }
}
...