首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

监听电话的receiver片断

2012-06-26 
监听电话的receiver片段? public class PhoneStatReceiver extends BroadcastReceiver {??? ??? boolean m

监听电话的receiver片段

?

public class PhoneStatReceiver extends BroadcastReceiver {

??? ??? boolean mIsComingCall = false;

??? ??? @Override
??? ??? public void onReceive(Context context, Intent intent) {
??? ??? ??? Log.d(TAG,"onReceive():intent.getAction()="+intent.getAction());
??? ??? ??? if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
??? ??? ??? ??? String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
??? ??? ??? ??? Log.i(TAG, "call OUT:" + phoneNumber);
??? ??? ??? ???
??? ??? ??? } else if (intent.getAction().equals("android.intent.action.PHONE_STATE")) {
??? ??? ??? ??? if(mGridLayer != null){
??? ??? ??? ??? ??? boolean mIsSlide = mGridLayer.inSlideShowMode();
??? ??? ??? ??? ??? Log.d(TAG,"onReceive():mIsSlide="+mIsSlide);
??? ??? ??? ??? ??? if(!mIsSlide){
??? ??? ??? ??? ??? ??? return;
??? ??? ??? ??? ??? }
??? ??? ??? ??? }else{
??? ??? ??? ??? ??? return;
??? ??? ??? ??? }
??? ??? ??? ??? TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
??? ??? ??? ??? switch (tm.getCallState()) {
??? ??? ??? ??? ??? case TelephonyManager.CALL_STATE_RINGING:
??? ??? ??? ??? ??? ??? mIsComingCall = true;
??? ??? ??? ??? ??? ??? String incoming_number = intent.getStringExtra("incoming_number");
??? ??? ??? ??? ??? ??? Log.i(TAG, "RINGING :" + incoming_number);
??? ??? ??? ??? ??? ??? break;
??? ??? ??? ??? ??? case TelephonyManager.CALL_STATE_OFFHOOK:
??? ??? ??? ??? ??? ??? if (mIsComingCall) {
??? ??? ??? ??? ??? ??? ??? Log.i(TAG, "incoming ACCEPT");
??? ??? ??? ??? ??? ??? ??? mHasPhoneCame = true;
??? ??? ??? ??? ??? ??? }
??? ??? ??? ??? ??? ??? break;
???
??? ??? ??? ??? ??? case TelephonyManager.CALL_STATE_IDLE:
??? ??? ??? ??? ??? ??? if (mIsComingCall) {
??? ??? ??? ??? ??? ??? ??? Log.i(TAG, "incoming IDLE");
??? ??? ??? ??? ??? ??? ??? mHasPhoneCame = true;
??? ??? ??? ??? ??? ??? }
??? ??? ??? ??? ??? ??? break;
??? ??? ??? ??? }
??? ??? ??? } else {
??? ??? ??? ??? Log.i(TAG, "onreceive else");
??? ??? ??? }
??? ??? }
??? }

热点排行