Android的wifi脚本问题

我有一个问题,这个问题在过去几天一直困扰着我。 我想写一个Android sh脚本来做以下事情(帮助我同步音乐,图片等):

1)打开wifi(默认closureswifi以节省电量)

2)检查我的wifi连接是否在范围内(让我们称之为myWifi)

3)如果myWifi不在范围内,禁用wifi,如果在范围内,则连接并启动一些同步软件

现在,要启用/禁用wifi,我使用以下命令,它需要root权限:

svc wifi enable / disable

要扫描可用的wifi连接,我使用以下命令:

iwlist eth0 scan

平板的事情是, iwlist eth0 scan将只工作,如果我不作为根login(我很好奇,为什么这是这种情况,如果有人知道什么?),运行它,而根将返回:

eth0: Interface doesn't support scanning : Invalid argument

但运行它,而不是以root身份login,会给我我需要的信息。 我已经尝试了不同的方法来解决这个问题。 最明显的是在调用iwlist命令之前,以Android系统中的标准用户身份login:

su -c app_1

但是,任何涉及su的命令都会返回permission denied即使以root身份进行调用也是如此,由于sudo在Android中不存在,所以我觉得在这里丢失了很多。 我也尝试了一种解决方法,将脚本分成两部分,第一个是root,第二个是非root(Android i的默认用户是app_1),但是这只会延迟这个问题。

如果有人如何解决这个用户问题,或者如何使用iwlist eth0 scan (或另一个相同的命令)作为根login时,我会非常格格不入。

谢谢。

根据man iwlist,普通用户只能看到一些剩余的扫描结果。 要以root用户身份启动新的扫描,首先需要启动界面(在启动wifi之后):

 ifconfig wlan0 up