mBluetoothGatt.getServices() возвращает неправильные UUID

В настоящее время разрабатывается приложение для Android для подключения к пользовательскому сервису ble. Сканирование работает нормально, но теперь я не могу прочитать характеристики из сервиса. Я использую плату разработки PSoC. Сделал кастомный сервис с несколькими характеристиками, отладил программой CySmart, все работает.

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

                List<BluetoothGattService> gattServices =   mBluetoothGatt.getServices();
                Log.e("onServicesDiscovered", "Services count: "+gattServices.size());

                for (BluetoothGattService gattService : gattServices) {
                    String serviceUUID = gattService.getUuid().toString();
                    Log.e("onServicesDiscovered", "Service uuid "+serviceUUID);
                }

                BluetoothGattService gattService = mBluetoothGatt.getService(UUID.fromString(ServiceUUID));
                if (gattService == null)
                {
                    Log.i("BLEtest", "gattservice null");
                    return; // return if the service is not supported
                }
                Characteristic1 = gattService.getCharacteristic(UUID.fromString(Char1UUID));
                Characteristic2 = gattService.getCharacteristic(UUID.fromString(Char2UUID));

            }
            broadcastUpdate(ACTION_SERVICES_DISCOVERED);
        }

Теперь в приложении для Android при обнаружении служб после подключения к серверу GATT mBluetoothGatt.getServices() возвращает значение null при попытке обнаружить службы с UUID, которые я реализовал в пользовательской службе. После того, как это произошло, я добавил часть кода, которая возвращает все обнаруженные сервисы, не используя UUID. Результатом являются 3 UUID, которые не совпадают с теми, которые я реализовал.

02-18 02:33:29.366 19755-19767/jafs.app E/onServicesDiscovered: Services count: 3
02-18 02:33:29.366 19755-19767/jafs.app E/onServicesDiscovered: Service uuid 00001800-0000-1000-8000-00805f9b34fb
02-18 02:33:29.367 19755-19767/jafs.app E/onServicesDiscovered: Service uuid 00001801-0000-1000-8000-00805f9b34fb
02-18 02:33:29.367 19755-19767/jafs.app E/onServicesDiscovered: Service uuid 88117a52-cce5-40de-a40c-1984a342ea00
02-18 02:33:29.367 19755-19767/jafs.app I/BLEtest: gattservice null

UUID, которые находятся в пользовательской службе, которую я реализовал, отличаются. В пользовательской службе уже сгенерированы разные UUID, но все равно возвращаются одни и те же. Я думаю, что первые 2 UUID изначально используются по умолчанию при создании пользовательского сервиса BLE, но в конце концов я изменился. Чем-то 3-й не похож на остальные.

Любая помощь ценна!


person José Salgado    schedule 18.02.2019    source источник
comment
Похоже, это может иметь значение: stackoverflow.com/questions/22596951/   -  person stkent    schedule 18.02.2019
comment
@stkent Спасибо, чувак! Это косвенно решило мою проблему, дав мне идею. Просто нужно было удалить приложение с моего смартфона, вместо того, чтобы запускать новое приложение из студии Android с установленным последним.   -  person José Salgado    schedule 18.02.2019