У меня есть простая проблема с моим телефоном: когда я отсоединяюсь от точки доступа Wi-Fi, мой телефон не подключается автоматически, потому что он всегда думает, что нет Интернета. Это из-за моего брандмауэра. Я предполагаю, что Android-телефоны пытаются выполнить ping-сервер, чтобы проверить, есть ли подключение к Интернету.
Итак, в настоящее время я пытаюсь написать простой скрипт, который постоянно сканирует сети Wi-Fi, пока не найдет тот, с которым я был связан в прошлом.
Вероятно, это был действительно простой скрипт, но я просто не могу найти способ фактического подключения к точке доступа .
import threading import androidhelper droid = androidhelper.Android() knownAPs = ["home-wifi","workAP"] def autoConnect(): threading.Timer(5.0, autoConnect).start() droid.wifiStartScan() nearbyAPs = droid.wifiGetScanResults().result for i, curAP in enumerate(nearbyAPs): if curAP['ssid'] in knownAPs: # ?connect to a wifi? autoConnect()
Я что-то пропустил в документах? Любая идея, как я мог бы это сделать?
Редактировать:
Предположительно можно использовать библиотеку Kivy в QPython. Однако я не мог найти пример того, как это можно сделать. Но, может быть, проблема может быть решена именно так?
На сегодняшний день нет способа указать, к какой сети подключиться в SL4A (который используется androidhelper
).
Более того, чтобы процитировать из страницы Giteub SL4A :
SL4A больше не находится в активной разработке. Однако некоторые вилки этого проекта могут быть.
В качестве замены вы можете использовать plyer (я не уверен, что QPython предоставляет это, хотя). Существует очень красивый пример использования plyer для управления WiFi. Я уверен, что вы можете адаптировать его для своих нужд.
Если QPython не поддерживает plyer (я надеюсь, что это так), я рекомендую посмотреть на python-for-android, созданный людьми в kivy, которые также поддерживают plyer. С ним созданы соответствующие приложения [ 1 ].
Это похоже на ответ только для ссылок и одобрение для киви … Да.