在 Android 平台上取得裝置資訊

最近作的東西必須要取得裝置上的一些資訊,但如果直接拿的話,一定會遇到錯誤訊息,大概會像下面這樣: 查了一下才知道,這是 Android 平台的安全機制作祟:任何會影響到其他程式、作業系統、或使用者操作的行為,都會被系統所管制,例如:讀取使用者自己的資料 (電話部或簡訊)、使用其他程式所建立的檔案、或執行網路的存取等。除非在安裝程式時有得到使用者的「許可」(permission) 才能操作;而這個所謂「得到使用者的許可」,就是要 在程式的 AndroidManifest.xml 檔案中加入 uses-permission 的子元素 ,以說明這個程式在未來會用到哪些特殊的功能;如果使用者要安裝使用此程式的話,就必須同意程式未來的存取動作。而這些動作一但設定好,並安裝進手機上就不會再有所變動。 想知道有哪些動作是必須先經過設定 uses-permission 才能使用的,可以參照此網頁: android.Manifest.permission 其中每一行都是原本我們不能使用,但可以改變其設定的操作,例如: " android.permission.ACCESS_COARSE_LOCATION " - 能允許我們取得手機目前連線的ap位置, " android.permission.READ_PHONE_STATE " - 可以讀取手機目前的狀態, " android.permission.READ_SMS " - 可以讀取簡訊內容, " android.permission.WRITE_CONTACTS " - 可以寫入電話簿內容,但無法讀取。 (注意!上述最後兩項設定都只有設定「讀取」與「寫入」動作而已,若你的程式對這些資料同時有「讀」和「寫」的需求時,就必須個別設定!) 以下是讀取一些手機資訊的範例: public class InfoRetriever extends Activity { private TextView locationText; private TextView numberText; private TextView simText; @Override public void onCreate(Bundle savedInstanceS...