安卓WiFi脚本问题

5
我有一个问题,在过去几天里一直困扰着我。我想编写一个Android sh脚本,以执行以下操作(帮助我同步音乐、图片等):
1) 打开wifi(wifi默认关闭以节省电力)
2) 检查我的wifi连接是否在范围内(我们称之为myWifi)
3) 如果myWifi不在范围内,则禁用wifi;如果在范围内,则连接并启动一些同步软件
现在,我使用以下命令启用/禁用wifi,需要root权限:
svc wifi enable / disable 要扫描可用的wifi连接,我使用以下命令:
iwlist eth0 scan
奇怪的是,只有当我不作为root用户登录时,iwlist eth0 scan才能正常工作(如果有人知道原因,请告诉我)。使用root运行它会返回:
eth0: Interface doesn't support scanning : Invalid argument
但是,如果不作为root用户登录运行它,就会给我所需的信息。我尝试了不同的方法来解决这个问题。最明显的方法是在调用iwlist命令之前以Android系统中的标准用户身份登录:
su -c app_1
然而,任何涉及su的命令都会返回permission denied,即使以root身份调用它也是如此,而且由于Android中不存在sudo,我感到相当迷茫。我还尝试了一种解决方法,即将脚本分成两部分,并尝试在第一部分中以root身份运行,在第二部分中以非root用户(Android中的默认用户i app_1)运行,但这只会拖延问题......
如果有人知道如何解决这个用户问题,或者如何在作为root登录时使用iwlist eth0 scan(或执行相同功能的其他命令),我将非常感激。
谢谢。

你使用的 wireless(number).h 版本是哪个? - NoBugs
很抱歉,我不记得了,而且我担心那个脚本也随着我的旧Nexus手机一起丢失了。我开始使用Google音乐代替上述脚本。 - AHaahr
1个回答

0

根据man iwlist,普通用户只能看到一些剩余的扫描结果。要作为root启动新的扫描,您需要先启动接口(在启动wifi之后):

ifconfig wlan0 up

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接