除了SIM卡的相關資訊之外,我們可以使用TelephonyManager來擷取電信網路的相關資訊。例如電信網路國別、電信網路國別、代碼、名稱、網路類型等。
初次之外,我們要想獲得藍芽、無限網路等手機內建值,我們可以通過android.provider.settings.System來擷取。
至於TelephonyManager這個類,我們前邊已經介紹過了。現在,我們來看看android.provider.settings.System.
/***<br /> * android.provider.settings.System類提供了以索引值對形式訪問系統的設定資訊<br /> */<br />private void run(){</p><p>ContentResolver contentResolver = this.getContentResolver();<br />// 擷取藍芽的狀態。<br />String result = System.getString(contentResolver, System.BLUETOOTH_ON);<br />if(result.equals("1")){<br />// 值為2,代表已經開啟<br />}<br />else{<br />// 否則為未開啟<br />}</p><p>/***<br /> * 以下,返回"1"代表已經開啟,否則為未開啟<br /> * 擷取藍芽開啟狀態:String result = System.getString(contentResolver, System.BLUETOOTH_ON);<br /> * 擷取wifi狀態:String result = System.getString(contentResolver, System.WIFI_ON);<br /> * 擷取飛航模式:String result = System.getString(contentResolver, System.AIRPLANE_MODE_ON);<br /> * 擷取數據漫遊狀態:String result = System.getString(contentResolver, System.DATA_ROAMING);<br /> */</p><p>}
我們可以看出,如果我們想取得System中的值,那麼我們必須首先擷取一個ContentResolver,然後傳遞進去,這是為什麼呢?其實system本質上是一張表的映射,這麼說,你就明白了吧。我們甚至可以通過其提供的各種put方法,將我們的一些值儲存到該表中。
源碼中有這麼一段代碼:
/**
* The content:// style URL for this table
*/
public static final Uri CONTENT_URI =
Uri.parse("content://" + AUTHORITY + "/system");
現在,明白了吧。其中authority是settings
---------------------------------------------------------------
其他可訪問的設定資訊: