2011-06-27 81 views
5

我有一個問題,在過去幾天一直嘮叨我。我想編寫一個Android sh腳本,做以下(幫我同步音樂,圖片等):Android的wifi腳本問題

1)開啓WLAN(WIFI默認爲關閉,以節省電力)

2)檢查我的wifi連接在範圍內(可以稱之爲myWifi)

3)如果myWifi不在範圍內,禁用無線網絡,如果是在範圍,連接和啓動一些同步軟件

現在,爲了使/禁用wifi,我使用以下命令,其中需要root:

svc wifi enable/disable

要掃描avaible WiFi連接,我用下面的命令:

iwlist eth0 scan

的strage的事情是,如果我不是以root身份登錄iwlist eth0 scan只會工作(我很好奇爲什麼是這樣的情況下,如果有人知道什麼),運行它,而根將返回:?

eth0: Interface doesn't support scanning : Invalid argument

但在沒有以root登錄的情況下運行它,會給我所需的信息。我嘗試了不同的方法來解決這個問題。最明顯的是在Android系統的標準用戶登錄正確調用iwlist命令之前:

su -c app_1

然而,涉及蘇調用它的權限時將返回permission denied甚至任何命令,因爲Android中不存在sudo,我覺得這裏很迷路。我也嘗試了一種解決方法,將腳本分成兩部分,並嘗試以root身份運行第一部分,第二部分作爲非root(Android i中的默認用戶app_1)運行,但這隻會延遲問題...

如果有人如何解決這個用戶問題,或者如何在以root登錄時如何使用iwlist eth0 scan(或者其他相同的命令),我會非常樂意。

謝謝。

+0

您使用的是什麼版本的無線(號碼).h? – NoBugs

+0

我很抱歉,但我不記得了,我擔心腳本在我的舊Nexus手機中丟失了。我開始使用Google音樂,而不是上面的腳本。 – AHaahr

回答

0

根據man iwlist正常用戶只能看到一些剩餘的掃描結果。要以root用戶身份啓動新的掃描,首先需要啓動界面(啓動wifi後):

ifconfig wlan0 up