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类里面调用的时候 总是出现进程关闭 无法获取手机信息。后来发现
getSystemService这个方法基于context,只有存在TextView控件的窗体中这个方法才会被激活~ |
于是:
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();
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。