(я ответил на этот же вопрос здесь )
Вы не можете явно форсировать канал связи для каждого приложения отдельно (вы можете запросить использование предпочтительного режима через ConnectivityManager.setNetworkPreference(...)
, но это не «принуждение»).
Хотя это, вероятно, ужасный UX, вы можете сообщить пользователю, что ваше приложение запрещает использовать WiFi, а затем отключить его WiFi, если они хотят продолжить.Для этого вам нужны разрешения ACCESS_WIFI_STATE
и CHANGE_WIFI_STATE
.Код будет выглядеть примерно так:
manager = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);
if(manager.isWifiEnabled()) {
manager.setWifiEnabled(false);
}
// and to be sure:
ConnectivityManager.setNetworkPreference(ConnectivityManager.TYPE_MOBILE);