Android監聽來電和去電


要監聽android打電話和接電話,只需下面2步驟
第一步,寫一個Receiver繼承自BroadcastReceiver
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;
 
public class PhoneStateBroadCastReceiver extends BroadcastReceiver
{
 private static final String TAG = "PhoneStateBroadCastReceiver";
 
 private static boolean mIncomingFlag = false;
 private static String mIncomingNumber = null;
 
 @Override
 public void onReceive(Context context, Intent intent)
 {
  // 如果是撥打電話
  if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL))
  {
   mIncomingFlag = false;
   String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
   Log.i(TAG, "call OUT:" + phoneNumber);
  } else
  {
   // 如果是來電
   TelephonyManager tManager =
   (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
   switch (tManager.getCallState())
   {
   case TelephonyManager.CALL_STATE_RINGING:
    mIncomingNumber = intent.getStringExtra("incoming_number");
    Log.i(TAG, "RINGING :" + mIncomingNumber);
    break;
   case TelephonyManager.CALL_STATE_OFFHOOK:
    if (mIncomingFlag)
    {
     Log.i(TAG, "incoming ACCEPT :" + mIncomingNumber);
    }
    break;
   case TelephonyManager.CALL_STATE_IDLE:
    if (mIncomingFlag)
    {
     Log.i(TAG, "incoming IDLE");
    }
    break;
   }
  }
 }
 
}
第二步:在AndroidManifest.xml,配置寫好的Receiver,並攔截相應的BroadCastAction,
另外注意加上相應的權限
<receiver android:name=".broadcase.PhoneStateBroadCastReceiver"> 
            <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 android:name="android.permission.PROCESS_OUTGOING_CALLS" />


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM