使用 QPython 连接到接入点?
Posted
技术标签:
【中文标题】使用 QPython 连接到接入点?【英文标题】:Connect to access point using QPython? 【发布时间】:2017-04-13 08:58:18 【问题描述】:我的手机有一个简单的问题:当我从 wifi 热点断开连接时,我的手机不会自动重新连接,因为它总是认为没有互联网。这是因为我的防火墙。我猜安卓手机会尝试 ping 服务器以检查是否有 Internet 连接。
所以我目前要做的是编写一个简单的脚本,不断扫描 Wifi 网络,直到找到我过去连接过的网络。 这可能是一个非常简单的脚本,但是I just can't find a method to actually connect to an access point。
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()
我在文档中遗漏了什么吗?知道我该怎么做吗?
编辑: 据称可以在 QPython 中使用 Kivy 库。不过,我找不到如何实现它的示例。但也许问题可以这样解决?
【问题讨论】:
也许您正在寻找wifiReconnect
?这个,以及其他一些wifi相关的功能在document you mentioned的底部都有描述
...想想吧。我的手机不再自动连接到任何 wifi 热点。我怀疑重新连接是否会自动将我连接到我过去连接过的任何 wifi 网络。
【参考方案1】:
截至目前,在 SL4A 中无法指定连接到哪个网络(androidhelper
使用该网络)。
另外,引用SL4A's Github Page:
SL4A 不再处于积极开发中。但是,该项目的某些分支可能是。
作为替代,您可以使用plyer(我不确定 QPython 是否提供此功能)。使用 plyer 控制 WiFi 有一个非常好看的 example。我很确定您可以根据自己的需要调整它。
如果 QPython 不支持 plyer(我希望它支持),我建议查看由 kivy 的人们构建的 python-for-android,他们也维护 plyer。有用它构建的合适的应用程序 [1]。
这感觉像是一个仅链接的答案和对 kivy 的认可......呵呵。
【讨论】:
我读到 QPython 可以使用 Kivy 的库。我找不到任何例子。知道如何做到这一点吗? 在 QPython 上尝试import plyer
。如果可行,链接示例将是一个很好的起点。
我如何获得 plyer?我尝试了pip install plyer
(这似乎有效,至少我没有出错),然后我在我的脚本中使用了from plyer import wifi
。结果:ImportError: cannot import wifi
根据 Github 上的自述文件,plyer 不支持 Android 的 wifi API。以上是关于使用 QPython 连接到接入点?的主要内容,如果未能解决你的问题,请参考以下文章