使用QPython连接到接入点?

For*_*vin 7 python android android-wifi sl4a qpython

我的手机有一个简单的问题:当我从wifi热点断开连接时,我的手机不会自动重新连接,因为它总是认为没有互联网.这是因为我的防火墙.我猜测Android手机试图ping服务器以检查是否存在Internet连接.

所以我现在要做的就是编写一个简单的脚本,不断扫描Wifi网络,直到它找到我过去连接过的网络.
它可能是一个非常简单的脚本,但我找不到实际连接到接入点的方法.

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()
Run Code Online (Sandbox Code Playgroud)

我在文档中遗漏了什么吗?知道我怎么能做到这一点?

编辑:
据说可以在QPython中使用Kivy库.我找不到一个如何实现它的例子.但也许这个问题可以解决吗?

pra*_*nsg 0

截至目前,无法指定 SL4A(由androidhelper)中连接到哪个网络。

此外,引用SL4A 的 Github 页面

SL4A 不再处于积极开发之中。然而,这个项目的一些分支可能是。


作为替代,您可以使用plyer(不过我不确定 QPython 是否提供了这个)。有一个非常漂亮的使用 plyer 控制 WiFi 的示例。我很确定您可以根据自己的需要进行调整。

如果 QPython 不支持 plyer(我希望它支持),我建议查看由kivy的人员构建的python-for-android,他们也维护 plyer。有一些合适的应用程序是用它构建的[ 1 ]。

这感觉就像一个仅链接的答案和对 kivy 的认可......呵呵。