У меня есть приложение Xamarin для Android. Он подключается к «маршрутизатору Wi-Fi без Интернета» для некоторых устройств IOT. Но ему также необходимо использовать сотовые данные мобильного телефона для хранения некоторой информации в Dropbox.
Теперь это работает следующим образом:
- Могу программно включить / выключить Wifi соединение.
- Не могу включить / выключить сотовые данные (начиная с Android L). Это не разрешено на устройствах без рута.
- Когда мой телефон подключен к этому локальному маршрутизатору Wi-Fi и сотовые данные также включены, Android работает по умолчанию, он использует Интернет из сотового соединения, и все мои звонки в Dropbox работают без каких-либо проблем.
- Но это предпочтение сотовой связи, когда у локального Wi-Fi «нет Интернета», приводит к тому, что мое приложение никогда не подключается к локальным устройствам. Скажем, одно из моих устройств прослушивает IP 192.168.2.3 на порту 9000, когда я пытаюсь подключиться к нему, мой код ищет его через сотовые данные и возвращает хост, который не найден.
- Так есть ли способ подключиться к локальным устройствам в этом сценарии?
- В качестве обходного пути я вручную предоставил модальные всплывающие окна, чтобы проинструктировать пользователей отключить сотовую связь, когда требуются «не» вызовы Dropbox, такие как подключение к устройствам IOT. Но это не очень хороший пользовательский опыт, поскольку пользователям приходится постоянно менять сети вручную. Я хотел бы, чтобы код обрабатывал это более прозрачным образом.
Пожалуйста, порекомендуйте.