android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监 听是否有SD卡安装及移除,ClipboardService提供剪切板功能,PackageManagerService提供软件包的安装移除及查看等 等,应用程序可以通过系统提供的Manager接口来访问这些Service提供的数据。

 
    getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。以下介绍系统相应的服务。
 
           传入的Name           |           返回的对象              |         说明
  • 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  
         
         
       电话服务
 
 
Currently available names are:
  • 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
 
Note: System services obtained via this API may be closely
associated with the Context in which they are obtained from. In
general, do not share the service objects between various different
contexts (Activities, Applications, Services, Providers,
etc.)
 
一个例子:

在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();

引自:http://blog.sina.com.cn/s/blog_7cb2c5d50101c26t.html

Android——getSystemService的更多相关文章

  1. Android -- getSystemService

    Android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监听是否有SD卡安装及移除,ClipboardServic ...

  2. Android操作系统服务(Context.getSystemService() )

    getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象.下面介绍系统相应的服务: 传入 ...

  3. android中getSystemService详解

        android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监 听是否有SD卡安装及移除,ClipboardS ...

  4. Android:getContext().getSystemService()

    一.介绍 getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象 二.语法 Windo ...

  5. Android Service GetSystemService

    http://blog.sina.com.cn/s/blog_71d1e4fc0100o8qr.html http://blog.csdn.net/bianhaohui/article/details ...

  6. Android之getSystemService

    getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象.以下介绍系统相应的服务. 传入 ...

  7. android window(二)从getSystemService到WindowManagerGlobal

    在Activity调用getSystemService(WINDOW_SERVICE) 调用的是父类ContextThemeWrapper package android.view; public c ...

  8. 【Android】 context.getSystemService()浅析

    同事在进行code review的时候问到我context中的getSystemService方法在哪实现的,他看到了一个ClipBoardManager来进行剪切板存储数据的工具方法中用到了cont ...

  9. Android指纹解锁

    Android6.0及以上系统支持指纹识别解锁功能:项目中用到,特此抽离出来,备忘. 功能是这样的:在用户将app切换到后台运行(超过一定的时长,比方说30秒),再进入程序中的时候就会弹出指纹识别的界 ...

随机推荐

  1. 如何修改Oracle字符集

    一.什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系.ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据.它使数据库 ...

  2. HttpSessionBindingListener和HttpSessionAttributeListener区别 - gengkunpeng的专栏 - 博客频道 - CSDN.NET

    分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 HttpSession ...

  3. [转]Java获取当前路径

    1.利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user ...

  4. 解决tableView分割线左边不到边的情况

    //解决tableView分割线左边不到边的情况//    if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) {//  ...

  5. 【KVM安装】在Centos6.8中安装KVM

    阅读目录 前题条件 章节1:安装Centos6.8-进行硬件检测 章节2:配置网络-设置桥接方式 章节3:安装KVM 章节4:OVA转qcow2 章节5:使用KVM创建虚拟机 章节6:参考链接 前题条 ...

  6. Linux开机自动挂载存储

    今天有个系统的开发人员跟我说,他们测试系统出现问题重启了服务器后就发现找不到存储了. 唉,不用说了.肯定没有自动加载存储呗.一个堂堂的技术顾问,一天4-5K工资的人连这个操作都不会啊?忍了... 登录 ...

  7. 打开PDF文件弹出阅读未加标签文档的解决方法

    在“高级”菜单的“辅助工具”选中“设置助手”,然后点选“设置屏幕阅读器选项”,下一步之后,将“忽略已加标签文档的阅读顺序”和“添加标签到文档之前进行确认”(有的版本显示的是“为文档加标签前确认”)前面 ...

  8. activiti自定义流程之Spring整合activiti-modeler5.16实例(二):创建流程模型

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建 1.maven导包,这里就没有什么多的好说了,直接代码: <depe ...

  9. SIP 状态码

    SIP应答消息状态码 与功能 类型 状态码 状态说明临时应答(1XX) 100 Trying 正在处理中180 Ringing 振铃181 call being forwarder 呼叫正在前向182 ...

  10. 黄聪:C#如何通过MeasureString、Graphics获取字符串的像素长度

    1.    使用g.MeasureString()获得 使用MeasureString测量出来的字符宽度,总是比实际宽度大一些,而且随着字符的长度增大,貌似实际宽度和测量宽度的差距也越来越大了.查了一 ...