我有一个问题,在过去的几天里一直在唠叨我。我想写一个Android sh脚本执行以下操作(帮助我同步音乐,图片等):
1)打开wifi(默认情况下wifi关闭以节省电量)
2)检查我的wifi连接是否在范围内(让我们称之为myWifi)
3)如果myWifi不在范围内,请禁用wifi,如果它在范围内,请连接并启动一些同步软件
现在,要启用/禁用wifi,我使用以下命令,该命令需要root:
svc wifi enable / disable
要扫描可用的wifi连接,我使用以下命令:
iwlist eth0 scan
很明显,iwlist eth0 scan
只有在我没有以root身份登录时才会起作用(我很好奇为什么会出现这种情况,如果有人知道的话?),运行它时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
(或执行相同操作的其他命令),我将非常感激。
谢谢。
答案 0 :(得分:0)
根据man iwlist普通用户只能看到一些遗留扫描结果。要以root用户身份启动新扫描,首先需要启动界面(启动wifi后):
ifconfig wlan0 up