我想從bash腳本調用公共android方法getSSID()?我的目標是將android設備上當前連接的SSID返回給bash變量。bash腳本使用活動管理器調用公共android api方法(am)
要求:
- 必須運行以非超級用戶
- 必須使用僅限Android烘烤功能。
- AKA不需要額外安裝應用程序
- 必須直接從簡單的bash腳本運行。
以前: 我一直在使用該命令dumpsys使用grep來獲取我所需要的,但現在看來,我需要的是根這個工作,所以我在尋找這個概念的替代品。
$ dumpsys wifi | grep -i $grepwifi
所以我發現了這個公共API ...
https://developer.android.com/reference/android/net/wifi/WifiInfo.html
但我無法弄清楚如何得到它的工作。我已經嘗試了幾個選項,如下所列沒有任何運氣。
$ am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiInfo.getSSID()
/system/bin/sh: syntax error: '(' unexpected
或者
$ am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiInfo.getSSID
Starting: Intent { act=android.intent.action.MAIN cmp=com.android.settings/.wifi.WifiInfo.getSSID }
Error type 3
Error: Activity class {com.android.settings/com.android.settings.wifi.WifiInfo.getSSID} does not exist.
我假設我根本就沒有把網址一起正確。所以我希望有人能指出我如何構建這些命令的文檔,以便一旦我通過ssid chalange後,我可以繼續探索其他公共API,但是如果有另一個簡單的方法從設備檢索WiFi信息,我會感謝任何可行的替代方案。
'am start'在命令行中接受一個Intent,而不是您嘗試的方法名稱。 –
感謝您的回覆。這是我已經能夠開始工作的一個例子。 adb shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings – Steve
但它不是一種方法,它是一個組件(pkg + activity) –