Android監聽來電和去電的實現方法

NO IMAGE

本文例項講述了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" />

PS:這裡再為大家提供一個關於AndroidManifest.xml許可權控制的線上查詢工具:

Android Manifest功能與許可權描述大全:
http://tools.jb51.net/table/AndroidManifest

更多關於Android相關內容感興趣的讀者可檢視本站專題:《Android簡訊與電話操作技巧彙總》、《Android操作SQLite資料庫技巧總結》、《Android開發入門與進階教程》、《Android多媒體操作技巧彙總(音訊,視訊,錄音等)》、《Android基本元件用法總結》、《Android檢視View技巧總結》、《Android佈局layout技巧總結》及《Android控制元件用法總結

希望本文所述對大家Android程式設計有所幫助。

您可能感興趣的文章:

Android來電監聽和去電監聽實現程式碼Android監聽手機電話狀態與傳送郵件通知來電號碼的方法(基於PhoneStateListene實現)Android中監聽未接來電的2種方法android實現來電靜音示例(監聽來電)android 電話狀態監聽(來電和去電)實現程式碼Android監聽系統來電並彈出提示視窗