Pracuję nad aplikacją mobilną (iOS i Android), aby sterować urządzeniem przez Wi-Fi. Urządzenie tworzy sieć bezprzewodową (SoftAP), ale nie zapewnia dostępu do Internetu.Android: Jak korzystać z sieci Wi-Fi dla konkretnych hostów, ale korzystam z telefonu Sieć komórkowa dla wszystkiego innego
W systemie iOS mogę połączyć się z urządzeniem i wysyłać żądania na jego adres IP: (192.168.70.1), ale wszystkie inne żądania zostają cofnięte do sieci komórkowej. Dzięki temu telefon może utrzymywać połączenie z Internetem, gdy jest podłączony do urządzenia przez Wi-Fi.
Jeśli korzystam z systemu Android po połączeniu się z siecią bezprzewodową urządzenia, żądania Internetu nie powracają do połączenia mobilnego, po prostu się nie udają.
W mojej aplikacji na Androida mogę użyć numeru ConnectivityManager.requestRouteToHost
, aby wymuszać żądania z mojej aplikacji do korzystania z sieci komórkowej. Jednak żądania innych aplikacji nadal wykorzystują sieć Wi-Fi urządzenia i kończą się niepowodzeniem.
Próbowałem również użyć ConnectivityManager
zmienić preferencje sieciowe z:
ConnectivityManager.setNetworkPreference (ConnectivityManager.TYPE_MOBILE)
To powoduje, że telefon do korzystania z sieci komórkowej dla wszystkich wnioski ze wszystkich aplikacji. Wi-Fi jest wyłączone. Wygląda na to, że w poprzednich wersjach Androida Wi-Fi można było nadal używać, nawet jeśli nie jest to "preferowana" sieć, ale nie działa to w KitKat. Prawdopodobnie jest to związane ze zmianą w systemie Android 4.2: https://code.google.com/p/android/issues/detail?id=73509 "Menedżer połączeń od 4.2 rozdzierania sieci, które nie są NetworkPreference"
Czy istnieje rozwiązanie, które pozwala aplikacji na Androida na korzystanie z Wi-Fi dla określonego adresu IP i sieć mobilna na wszystko inne? Może to zrobić za pośrednictwem NDK?
Czy znalazłeś rozwiązanie, aby określić sieć czarownic, której chcesz używać we wszystkich wersjach Androida? – DjimOnDev
Nie. Możliwe, że istnieje rozwiązanie dla Lollipopa, ale nie miałem jeszcze czasu na jego zbadanie. –
@PaulGreyson, jak to zrobiłeś dla systemu iOS? Szukam podobnego rozwiązania, aby wysyłać żądania http przez sieć komórkową, gdy urządzenie jest w sieci Wi-Fi. – keno