Я пытаюсь отправить уведомление из носимого приложения Tizen Watch (периферийное устройство в качестве сервера) в приложение для смартфона Android (центральное устройство в качестве клиента). Но у меня возникла ошибка при отправке уведомления из носимого приложения.
В приложении tizen Wearable (с использованием .net API) я отправляю уведомление следующим образом:
string remoteDeviceAddress = "10:C7:53:50:C4:E5";
server.SendNotification(charc, remoteDeviceAddress);
Что вызывает ошибку ниже:
11-25 10:46:05.969 Error 8874 8874 CAPI_NETWORK_BLUETOOTH bluetooth-gatt.c: bt_gatt_server_notify_characteristic_changed_value(2964) > [bt_gatt_server_notify_characteristic_changed_value] INVALID_PARAMETER(0callback=NULL)
11-25 17:20:18.225 Error 15042 15042 Tizen.Network.Bluetooth BluetoothGattImpl.cs: SendNotification(113) > Failed to send value changed notification for characteristic uuid 00000002-1000-2000-3000-111122223333, err: InvalidParameter
В приложении Android я подписываюсь на уведомления, как показано ниже:
mBluetoothGatt.setCharacteristicNotification(characteristic, true);
BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG));
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
mBluetoothGatt.writeDescriptor(descriptor);
Я не понимаю, почему возникает эта ошибка. Я проверил это:
- клиентское устройство Android подключено к часам BLE.
- сервис Gatt, предоставляемый серверным приложением Gatt, находит клиентское приложение.
- Bluetooth-адрес удаленного устройства часов точно такой, который отображается Android в настройках Bluetooth.
Ошибка, похоже, означает, что .net API вызывает собственную функцию API bt_gatt_server_notify_characteristic_changed_value (), которая ожидает обратного вызова, но метод SendNotification () .net API не требует такого обратного вызова в своих спецификациях, как здесь