- WINDOW_SERVICE WindowManager 管理打開的窗口程序
- LAYOUT_INFLATER_SERVICE LayoutInflater 取得xml里定義的view
- ACTIVITY_SERVICE ActivityManager 管理應用程序的系統狀態
- POWER_SERVICE PowerManger 電源的服務
- ALARM_SERVICE AlarmManager 鬧鍾的服務
- NOTIFICATION_SERVICE NotificationManager 狀態欄的服務
- KEYGUARD_SERVICE KeyguardManager 鍵盤鎖的服務
- LOCATION_SERVICE LocationManager 位置的服務,如GPS
- SEARCH_SERVICE SearchManager 搜索的服務
- VEBRATOR_SERVICE Vebrator 手機震動的服務
- CONNECTIVITY_SERVICE Connectivity 網絡連接的服務
- WIFI_SERVICE WifiManager Wi-Fi服務
- TELEPHONY_SERVICE TeleponyManager 電話服務
在android 獲取手機信息的時候用到這樣一段代碼:
public class BasicInfo {
public String getPhoneNumber()
{
// 獲取手機號 MSISDN,很可能為空
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
StringBuffer inf = new StringBuffer();
switch(tm.getSimState()){ //getSimState()取得sim的狀態 有下面6中狀態
case TelephonyManager.SIM_STATE_ABSENT :inf.append("無卡");return inf.toString();
case TelephonyManager.SIM_STATE_UNKNOWN :inf.append("未知狀態");return inf.toString();
case TelephonyManager.SIM_STATE_NETWORK_LOCKED :inf.append("需要NetworkPIN解鎖");return inf.toString();
case TelephonyManager.SIM_STATE_PIN_REQUIRED :inf.append("需要PIN解鎖");return inf.toString();
case TelephonyManager.SIM_STATE_PUK_REQUIRED :inf.append("需要PUK解鎖");return inf.toString();
case TelephonyManager.SIM_STATE_READY :break;
}
String phoneNumber = tm.getLine1Number();
return phoneNumber;
}
在另外一個activity類里面調用的時候 總是出現進程關閉 無法獲取手機信息。后來發現
|
於是:
1. 給BasicInfo 添加一個帶參數Context的構造函數:
public BasicInfo (Context context)
{
this.context = context;
}
2. getPhoneNumber()函數里面改成:
context.getSystemService(Context.TELEPHONY_SERVIC);
3. 在調用類里面 BasicInfo bi = new BasicInfo(this);
bi.getPhoneNumber();