mBluetoothGatt.getServices()返回错误的UUID

时间:2019-02-18 02:56:49

标签: java android bluetooth-lowenergy psoc

当前正在开发一个与ble定制服务连接的android应用。 扫描工作正常,但现在我无法从服务中读取特征。 我正在使用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服务器后发现服务时,尝试使用在自定义服务中实现的UUID查找服务时,mBluetoothGatt.getServices()返回null。 发生这种情况之后,我添加了返回所有服务的代码部分 发现,未使用任何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,但仍返回相同的UUID。我认为前两个UUID是进行自定义BLE服务时默认情况下的默认UUID,但最终我改变了。不知何故,第三者与其他人不同。

任何帮助都是有价值的!

0 个答案:

没有答案