【发布时间】:2023-03-12 16:27:01
【问题描述】:
在过去的几天里,我有一个问题一直困扰着我。我想编写一个 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 身份调用它也是如此,而且由于 sudo 在 Android 中不存在,所以我在这里感觉很迷茫。我也尝试了一种解决方法,将脚本分成两部分,并尝试以 root 身份运行第一个,以非 root 身份运行第二个(Android i app_1 中的默认用户),但这只会延迟问题...
如果有人知道如何解决这个用户问题,或者在以 root 身份登录时如何使用iwlist eth0 scan(或其他相同的命令),我将不胜感激。
谢谢。
【问题讨论】:
-
你用的是什么版本的 wireless(number).h?
-
很抱歉,我不记得了,我担心脚本在我的旧 Nexus 手机中丢失了。我开始使用 Google Music 而不是上面的脚本。
标签: android linux shell scripting wifi