У меня есть приложение для Android и сервер, доступный через Wi-Fi.
Для некоторых операций (например, потоковой передачи видео с сервера) мое приложение использует сторонние приложения, разделяя URL-адрес файла.
Начиная с устройства Android L можно одновременно подключаться как к Wi-Fi, так и к сотовой связи, что ломает мое приложение, так как у сервера нет Интернета, а сотовая сеть предпочитает Android (так как он имеет Интернет), поэтому URL-адрес не может быть разрешен. Я исправил это, привязав мое приложение к Wi-Fi с помощью bindProcessToNetwork(). Но когда приложение разделяет URL-адрес с 3'-сторонним приложением, URL-адрес еще не может быть разрешен, так как приложение стороннего приложения не привязывается к Wi-Fi.
Есть ли способ, чтобы 3-х стороннее приложение использовало Wi-Fi вместо сотовой связи, открывая URL-адрес моего приложения?
Принудительная сеть Wi-Fi для сторонних приложений
Ответ 1
Здесь у вас есть объяснение того, как принудительно настроить тип сети на определенный адрес:
Как использовать 3G-соединение в приложении Android вместо Wi-Fi?
Если вы знаете URL-адрес сторонних служб, вы можете попробовать его. Помните, что код зависит от сети, поэтому он должен работать от потока пользовательского интерфейса. Также этот код использует некоторые устаревшие методы.
Ответ 2
Существует много способов добиться этого... сначала с моей головы создайте приложение aa vpn, которое фиксирует весь трафик, поступающий в устройство и выходящий из него, и повторное маршрутизацию, если это необходимо, поэтому даже если ваш сторонний участник приложение думает, что его использование сотовых, его фактические пакеты tcp могут поступать откуда-то совершенно другим, даже Bluetooth, если вы хотите.
Во-вторых, быстрый и грязный (не уверенный, havent пробовал это, но быстрый поиск в Google бросил мой путь), перейдите к использованию ваших данных, включите отсечки данных (красные и оранжевые линии), не имеет значения, что вы их установили, но они должны быть включены. Затем прокрутите вниз, вы найдете список приложений, использующих данные, найдите стороннее приложение, вы найдете еще один флажок, чтобы ограничить его исходные данные, отметить его. Теперь это стороннее приложение больше не может использовать мобильные данные без вашего согласия: только те действия, которые вы запускали самостоятельно ( "данные переднего плана" ), будут выполняться им, синхронизация в фоновом режиме или другая фоновая активность. Поэтому, если ваше приложение совместно использует URL-адрес с сторонним приложением и не участвует в ui, тогда это должно работать
если вы просто скопируете и вставляете URL-адрес вручную, а затем при его ручном переводе мобильных данных.