Android \ iOS принудительно отключает устройство BLE для всех приложений - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть несколько приложений Xamarin, которые используют Plugin.BLE , они одновременно подключены к одному и тому же устройству BLE.

Устройство BLE остается подключенным к телефону, пока не будет хотя бы одно подключенное приложение. Таким образом, в основном «отключение» означает отключение клиента GATT, а не полное отключение устройства BLE от телефона. Работает одинаково для Android и iOS.

Я ищу способ принудительно отключить устройство BLE от телефона от одного приложения, чтобы оно было обнаружено как «отключенное» или, по крайней мере, «потерянное соединение» от всех других приложений. Родные решения для Android или iOS приветствуются, так как я могу написать небольшую библиотеку только для функции принудительного отключения.

Справочная информация

Plugin.BLE отключает реализацию на Android, вызывает как device.disconnect метод, так и gatt.close метод.

Plugin.BLE отключить реализацию на вызовах iOS centralManager.CancelPeripheralConnection метод.

Оба отключают только текущее приложение, но не BLE-устройство от телефона.

1 Ответ

0 голосов
/ 17 ноября 2018

Я не нашел способа принудительно отключить, как я хотел. Насколько я понимаю, это задумано специально, но, на мой взгляд, странно, что я могу отключить ВСЕ устройства, отключив адаптер Bluetooth, но не могу полностью отключить одно конкретное устройство.

Моим решением было использовать само устройство BLE для трансляции сообщений всем приложениям, которые его используют и принадлежат мне. После того, как все мои приложения получают сообщение от устройства BLE, они воспринимают его как команду для отключения.

...