使用 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 连接到接入点?的主要内容,如果未能解决你的问题,请参考以下文章

我可以将Sony HDR-AS100连接到现有接入点

我无法通过 WIFI 连接到 WI-FI DIRECT 制作的接入点

ESP8266的连接模式

互联网的接入方式有哪几种?

物理层——宽带接入技术

为啥我的手机显示无法连接到服务器