Как использовать Android для стабильного подключения к точке доступа ESP8266 без интернета?

У меня есть контроллер Wifi Micro ESP8266, который также имеет точку доступа. Я ссылался на другие блоги, в которых рассказывается о программном подключении к точке доступа, и пробовал оба способа.

  1. Использование открытого стандартного APIS

    wifiManager.enableNetwork (netId, правда); wifiManager.saveConfiguration(); wifiManager.reconnect();

  2. Использование API, на которых есть @ hide

    wifiManager.connect(netId, ActionListener)

Проблема, с которой я столкнулся, заключается в том, что через некоторое время после того, как я подключаюсь к точке доступа, она отключается от точки доступа esp8266 и снова подключается к моему маршрутизатору в обоих вышеупомянутых методах.

Если я подключился через верхнюю панель или через приложение настроек, он стабильно подключается и никогда не отключается, и я даже получаю уведомление.

Wi-Fi has no internet access

Я не получаю уведомление об отсутствии доступа к Интернету при программном подключении. Как приложение настроек может стабильно подключаться к точке доступа, в то время как мое приложение не может.

Я использую Androidn 6.0.1 API 23.


person Akash A    schedule 13.08.2016    source источник
comment
Это происходит не только через мое приложение, но и при настройке amazon alexa, где мне нужно подключиться к точке доступа устройства.   -  person Akash A    schedule 13.08.2016
comment
обнаружил новую проблему, аналогичную моей stackoverflow.com/questions/35145831/   -  person Akash A    schedule 13.08.2016
comment
Привет, Акаш, какой код ты используешь для подключения к esp. Я пробовал ниже, но не работал для меня. Можете ли вы поделиться своим фрагментом кода wifiConfiguration.SSID = \ + networkInfo.name + \; пароль = получить пароль (networkInfo.name); wifiConfiguration.preSharedKey = \ + пароль + \; wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.WPA);   -  person Nitin Kr    schedule 18.09.2016


Ответы (2)


Если вы специально запросите использование этого Network один раз, прежде чем он отключится, он останется подключенным на неопределенный срок:

  • ConnectivityManager.bindProcessToNetwork(Network)
  • Network.bindSocket(Socket)
  • Network.openConnection(URL)

Также см. мой ответ о том, как синхронизировать время между сетевым подключением и доступом: /а>

person Androbin    schedule 12.09.2018

Я обнаружил две основные проблемы с подключением Android к точке доступа ESP8266 или ESP32. Я использовал двойной режим AP-STA. Я прочитал, что, поскольку ESP8266 и ESP32 имеют одно радио, обрабатывающее AP и STA, соединение будет хрупким и не очень стабильным, поэтому мое устройство Android отключалось от AP во время настройки.

Решением этой проблемы является сохранение устройства ESP* в режиме SOFT_AP во время настройки и в режиме STA, когда оно подключено к точке доступа, и никогда в двойном режиме AP-STA. Это полностью решает мои проблемы со стабильностью.

person Akash A    schedule 02.04.2019