设为首页 加入收藏

TOP

侦听Android手机ServiceState
2014-11-24 13:29:49 来源: 作者: 【 】 浏览:1
Tags:侦听 Android手机 ServiceState

一、通过侦听广播


Android内部定义了ServiceState变化时,系统发出的广播(Action:TelephonyIntents.ACTION_SERVICE_STATE_CHANGED)。所以,如果要接收ServiceState的通知,可以通过代码注册


receiver是BroadcastReceiver,在其onReceive(Contextcontext, Intent intent)中,就可以侦听到ServiceState的变化:


在不用的时候,记得取消注册。而要接收这个广播,需要READ_PHONE_STATE的permission。


不过注意:这样的侦听方式,只能针对能看到底层的开发者,对于纯应用开发者来说是不行的。因为,TelephonyIntents是在com.android.intenal.telephony中定义的,而这个包是隐藏的。


二、注册Listener


既然com.android.intenal.telephony是隐藏的,给Android内部实现用的,那看外部exported的接口有什么。有一个android.telephony的包,里面有TelephonyManager。


Listen to PhoneState


通过TelephonyManager可以注册Listener来侦听ServiceState的变化。


TelephonyManager并不能直接被实例化,要获取它的实例,需要通过Context.getSystemService(),注册Listener通过listen(),其中的events是PhoneStateListener.LISTEN_xxx的bitmask:


在mPhoneStateListener这个PhoneStateListener中overrideonServiceStateChanged(ServiceState serviceState)方法就可以了。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇深入理解ARM体系架构(S3C6410) 下一篇Android MediaPlayer状态机

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: