没有合适的资源?快使用搜索试试~ 我知道了~
首页android中getSystemService详解
android中getSystemService详解
需积分: 50 1.2k 浏览量
更新于2023-03-16
评论 1
收藏 1.52MB DOC 举报
这个文档对android中的getSystemService有详细的讲解
资源详情
资源评论
资源推荐

android 中 getSystemService 详解
的后台运行在很多 ,它们在系统启动时被 开
启,支持系统的正常工作,比如 监听是否有 卡安装及移除,
提供剪切板功能, 提 供软件包
的安装移除及查看等等,应用程序可以通过系统提供的 接口来访问
这些 提供的数据。
是 很重要的一个 ,它是 的一个
方法,根据传入的 来取得对应的 ,然后转换成相应的服务对象。
以下介绍系统相应的服务。
传入的 !返回的对象 !说明
""#$%"&
管理打开的窗口程序
'()*#+'*$#$%',
取得 - 里定义的 &
*%*(#$%管理
应用程序的系统状态
"$#$%&电源
的服务
'$#$%闹钟
的服务
*+*#$%.
状态栏的服务
/(0)$#$%/
键盘锁的服务
'*#$%'位
置的服务,如 0
$1#$%2搜
索的服务
%3$*$#$%%手机
震动的服务
*%*(#$%网
络连接的服务
"+#$%"."4+ 服
务
*'1(#$%*
电话服务

5
""#$%67&&78
*24&&&22
&&9*2 "&9
'()*#+'*$#$%67#,78
',:,2-9
*%*(#$%6778
:&22
:29
"$#$%67&78
&:&9
'$#$%6778
:2:
29
*+*#$%67.78
.::2:
9
/(0)$#$%6778
/:9
'*#$%6778
':699;08
9
$1#$%67278
2:229
%3$*$#$%6778
%:&222&9
*%*(#$%6778
:2:&
9
"+#$%67&.78
".::"4+9
)*#*1#$%67#278
2::29
)##$%6778
):)9
"'#$%67&78
&:<1**&
52
&22-&222:9

;22 &=
-6;;;;98
一个例子:
在 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();
Summary
Constants
3'*(#$%
)&2
68
:
2::
)222
9
)*#$%
)&2
68
:
:29
*%*(#$%
)&2
68
:
&22
9
'$#$%
)&2
68
:
:
29
##$%
)&2
68

:
29
)#$%
)&2
68
:
2:
;
9
3#3%#'*
+:6;
;85
22
2
2
2
2:9
3#>)*#"*1#*%
*(
+:6;
;85:
:;&
2?
&222
2;
&222
,2
22
?
9
3#''"##
0*
+:6;
;85&
222
22
9
3#)*#$*
+:6;
;85
2
2
-9
3#3)0#)3
+:6;
;85
2:
29
剩余63页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0