2016-11-29 33 views
7

我的手机有一个简单的问题:当我从wifi热点断开连接时,我的手机不会自动重新连接,因为它总是认为没有互联网。这是因为我的防火墙。我猜测Android手机试图ping一台服务器来检查是否有互联网连接。使用QPython连接到接入点?

所以我目前正在尝试做的是写一个简单的脚本,不断扫描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库。我找不到如何实现它的例子。但也许这个问题可以像这样解决?

+1

也许您在寻找'wifiReconnect'?这个和其他一些与wifi相关的功能在[你提到的文档](http://kylelk.github.io/html-examples/androidhelper.html) –

+0

的底部进行了描述...只是想一想。我的手机不再自动连接到任何WiFi热点。我怀疑重新连接可能会自动将我连接到任何我曾经连接过的无线网络。 – Forivin

回答

0

从今天起,无法指定在SL4A中连接哪个网络(由androidhelper使用)。

此外,从SL4A's Github Page引用:

SL4A is no longer under active development. However, some forks of this project may be.


作为替代,你可以使用plyer(我不知道如果QPython提供这虽然)。有一个非常好看的example使用plyer来控制WiFi。我很肯定你可以根据你的需求来调整它。

如果QPython不支持plyer(我希望它可以),我推荐看看python-for-android,他们也建立在kivy之间,他们也是维护plyer的人。有适当的应用程序[1]。

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

+0

我读过QPython可以使用Kivy的库。但我找不到任何例子。任何想法如何做到这一点? – Forivin

+0

尝试QPython上的'import plyer'。如果可行的话,这个链接的例子将是一个很好的起点。 – pradyunsg

+0

我怎样才能得到强壮?我尝试过'pip install plyer'(这似乎起作用,至少我没有错误),然后我在脚本中使用'从plyer import wifi'。结果:'ImportError:无法导入wifi' – Forivin