(转)android中getSystemService详解
- 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 电话服务
- WINDOW_SERVICE ("window")
The top-level window manager in which you can place custom windows. The returned object is a WindowManager. - LAYOUT_INFLATER_SERVICE ("layout_inflater")
A LayoutInflater for inflating layout resources in this context. - ACTIVITY_SERVICE ("activity")
A ActivityManager for interacting with the global activity state of the system. - POWER_SERVICE ("power")
A PowerManager for controlling power management. - ALARM_SERVICE ("alarm")
A AlarmManager for receiving intents at the time of your choosing. - NOTIFICATION_SERVICE ("notification")
A NotificationManager for informing the user of background events. - KEYGUARD_SERVICE ("keyguard")
A KeyguardManager for controlling keyguard. - LOCATION_SERVICE ("location")
A LocationManager for controlling location (e.g., GPS) updates. - SEARCH_SERVICE ("search")
A SearchManager for handling search. - VIBRATOR_SERVICE ("vibrator")
A Vibrator for interacting with the vibrator hardware. - CONNECTIVITY_SERVICE ("connection")
A ConnectivityManager for handling management of network connections. - WIFI_SERVICE ("wifi")
A WifiManager for management of Wi-Fi connectivity. - INPUT_METHOD_SERVICE ("input_method")
An InputMethodManager for management of input methods. - UI_MODE_SERVICE ("uimode")
An UiModeManager for controlling UI modes. - DOWNLOAD_SERVICE ("download")
A DownloadManager for requesting HTTP downloads
在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();