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>
    
  • 相关阅读:
    HDU-6801 2020HDU多校第三场T11 (生成函数)
    [HDU-6791] 2020HDU多校第三场T1(回文自动机)
    回文自动机 (PAM,Palindrome Automaton)
    字符串的Period(周期),Border
    「APIO2019」路灯 (K-D Tree / 树套树 / CDQ + 树状数组)
    「APIO2019」桥梁(询问分块+并查集)
    「APIO2019」奇怪装置
    「APIO2018」选圆圈(K-D Tree/CDQ+Set)
    堆小结
    【[HNOI/AHOI2018]毒瘤】
  • 原文地址:https://www.cnblogs.com/vus520/p/2561870.html
Copyright © 2011-2022 走看看