zoukankan      html  css  js  c++  java
  • android轻松监听来电和去电

      要监听android打电话和接电话,只需下面2步骤
      1.第一步,写一个Receiver继承自BroadcastReceiver

      public class PhoneStatReceiver extends BroadcastReceiver{
      private static final String TAG = "PhoneStatReceiver";
      //        private static MyPhoneStateListener phoneListener = new MyPhoneStateListener();
      private static boolean incomingFlag = false;
      private static String incoming_number = null;
      @Override
      public void onReceive(Context context, Intent intent) {
      //如果是拨打电话
      if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){
      incomingFlag = false;
      String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
      Log.i(TAG, "call OUT:"+phoneNumber);
      }else{
      //如果是来电
      TelephonyManager tm =
      (TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE);
      switch (tm.getCallState()) {
      case TelephonyManager.CALL_STATE_RINGING:
      incomingFlag = true;//标识当前是来电
      incoming_number = intent.getStringExtra("incoming_number");
      Log.i(TAG, "RINGING :"+ incoming_number);
      break;
      case TelephonyManager.CALL_STATE_OFFHOOK:
      if(incomingFlag){
      Log.i(TAG, "incoming ACCEPT :"+ incoming_number);
      }
      break;
      case TelephonyManager.CALL_STATE_IDLE:
      if(incomingFlag){
      Log.i(TAG, "incoming IDLE");
      }
      break;
      }
      }
      }
      } 
    

     第二步:在AndroidManifest.xml,配置写好的Receiver,并拦截相应的BroadCastAction,
      另外注意加上相应的权限。
     

     <receiver android:name=".filter.PhoneStatReceiver">
      <intent-filter>
      <action android:name="android.intent.action.PHONE_STATE"/>
      <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
      </intent-filter>
      </receiver>
      <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
      <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission>
    
  • 相关阅读:
    查看sql 语句io执行情况
    MVC API 返回json 对象,使用netjson 返回
    微信支付——调用微信客户端支付之【服务端】开发详解
    React-Native hello word 搭建及新手常见问题
    PD中将Comment 从Name复制值
    Redis_DataType
    ConCurrent in Practice小记 (1)
    单链表是否存在环的检测(快慢指针法)
    开园第一天
    我希望……
  • 原文地址:https://www.cnblogs.com/vus520/p/2561870.html
Copyright © 2011-2022 走看看