1

Я в настоящее время разрабатываю приложение на Android, и у меня проблемы с обновлением Android 6.0: я не могу запросить через свою частную сеть!Запрос на Wi-Fi на Android M

например: Шаг 1: Подключение к Wi-Fi, который не обеспечивает подключение к Интернету Шаг 2: Сделайте запрос (например: запрос POST) на локальном IP (например: 192.168.1.168)

На любой версии Android (кроме 6.0): я получил ответ от своего локального веб-сервера On android M: no response: мой запрос передается по мобильным данным.

Когда я выключаю свои мобильные данные, запрос проходит через Wi-Fi, и я получил правильные ответы. Скажите, если я ошибаюсь, но, по-видимому, я не могу решить свою проблему в приложении, отключив данные программно или принудительно используя Wi-Fi с помощью api 23 ...

ответ

2

Вот как я решил свою проблему, если кому-то интересно:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { 
     ConnectivityManager connectivityManager = (ConnectivityManager) mCtx.getSystemService(Context.CONNECTIVITY_SERVICE); 
     Network activeNetwork = connectivityManager.getActiveNetwork(); 
     if (WifiConnectionManager.getInstance(mCtx).isConnectedToALocalWifi()) { 
      for (Network net : connectivityManager.getAllNetworks()) { 
       if (!net.equals(activeNetwork)) { 
        connectivityManager.bindProcessToNetwork(net); 
        try { 
         net.openConnection(new URL(mCtx.getString(R.string.wifi_cam_url))); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 
       } 
      } 

     } 

}

Удачи!

Смежные вопросы