监听电话状态的模板代码

Posted 码上加油站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监听电话状态的模板代码相关的知识,希望对你有一定的参考价值。

package com.example.calling;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;

public class PhoneStatusService extends Service {
   private TelephonyManager tm;
   private MyPhoneStatusListener  mPhoneStatusListener;
   @Override
   public IBinder onBind(Intent intent) {
      return null;
   }
   @Override
   public void onCreate() {
      super.onCreate();
      // 1. 获取手机管理器
      tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
      // 2. 设置监听
      mPhoneStatusListener = new MyPhoneStatusListener();
      tm.listen(mPhoneStatusListener, PhoneStateListener.LISTEN_CALL_STATE);
   }

   /**
    * 3. 用内部类实现监听
    * 手机状态监听
    */
   private class MyPhoneStatusListener extends PhoneStateListener {
      //当手机通话状态变化时,回调
      //state  :通话的3中状态
      //incomingNumber:来电号码
      @Override
      public void onCallStateChanged(int state, String incomingNumber) {
         super.onCallStateChanged(state, incomingNumber);
         System.out.println("来电号码:"+incomingNumber);      
         switch (state) {
            case TelephonyManager.CALL_STATE_IDLE://空闲
                System.out.println("空闲");
                break;
            case TelephonyManager.CALL_STATE_RINGING://响铃
                System.out.println("响铃");
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK://通话
                System.out.println("通话");
                break;
            default:
                break;
         }
      }
   }
   @Override
   public void onDestroy() {
      super.onDestroy();
      //4. 注销监听
      tm.listen(mPhoneStatusListener, PhoneStateListener.LISTEN_NONE);
   }
}

 

以上是关于监听电话状态的模板代码的主要内容,如果未能解决你的问题,请参考以下文章

学习Android过程中遇到的问题及解决方法——电话监听

android电话状态的监听

APK: 拨号广播监听电话的状态

APK: 拨号广播监听电话的状态

服务中电话状态的监听

电话状态的监听。响铃,静止,接起