Android监听来电和去电

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

 1 import android.app.Service;
 2 import android.content.BroadcastReceiver;
 3 import android.content.Context;
 4 import android.content.Intent;
 5 import android.telephony.TelephonyManager;
 6 import android.util.Log;
 7
 8 public class PhoneStateBroadCastReceiver extends BroadcastReceiver
 9 {
10  private static final String TAG = "PhoneStateBroadCastReceiver";
11
12  private static boolean mIncomingFlag = false;
13  private static String mIncomingNumber = null;
14
15  @Override
16  public void onReceive(Context context, Intent intent)
17  {
18   // 如果是拨打电话
19   if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL))
20   {
21    mIncomingFlag = false;
22    String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
23    Log.i(TAG, "call OUT:" + phoneNumber);
24   } else
25   {
26    // 如果是来电
27    TelephonyManager tManager =
28    (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
29    switch (tManager.getCallState())
30    {
31    case TelephonyManager.CALL_STATE_RINGING:
32     mIncomingNumber = intent.getStringExtra("incoming_number");
33     Log.i(TAG, "RINGING :" + mIncomingNumber);
34     break;
35    case TelephonyManager.CALL_STATE_OFFHOOK:
36     if (mIncomingFlag)
37     {
38      Log.i(TAG, "incoming ACCEPT :" + mIncomingNumber);
39     }
40     break;
41    case TelephonyManager.CALL_STATE_IDLE:
42     if (mIncomingFlag)
43     {
44      Log.i(TAG, "incoming IDLE");
45     }
46     break;
47    }
48   }
49  }
50
51 }

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

1 <receiver android:name=".broadcase.PhoneStateBroadCastReceiver">
2             <intent-filter>
3                <action android:name="android.intent.action.PHONE_STATE"/>
4                <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
5            </intent-filter>
6   </receiver>
7 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
8 <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />

 Android监听来电和去电 | 若水工作室 http://www.92coding.com/blog/index.php/archives/46.html

时间: 2024-11-03 23:55:51

Android监听来电和去电的相关文章

Android监听来电和去电的实现方法_Android

本文实例讲述了Android监听来电和去电的实现方法.分享给大家供大家参考,具体如下: 要监听android打电话和接电话,只需下面2步骤 第一步,写一个Receiver继承自BroadcastReceiver import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import andr

Android监听来电和去电的实现方法

本文实例讲述了Android监听来电和去电的实现方法.分享给大家供大家参考,具体如下: 要监听android打电话和接电话,只需下面2步骤 第一步,写一个Receiver继承自BroadcastReceiver import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import andr

android 电话状态监听(来电和去电)实现代码_Android

实现手机电话状态的监听,主要依靠两个类:TelephoneManger和PhoneStateListener. TelephonseManger提供了取得手机基本服务的信息的一种方式.因此应用程序可以使用TelephonyManager来探测手机基本服务的情况.应用程序可以注册listener来监听电话状态的改变.我们不能对TelephonyManager进行实例化,只能通过获取服务的形式: Context.getSystemService(Context.TELEPHONY_SERVICE);

Android 监听wifi广播的两种方式

 1.XML中声明 <receiver android:name=".NetworkConnectChangedReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="android.net.wifi.WIFI_STATE_CHANGED"

Android监听手机电话状态与发送邮件通知来电号码的方法(基于PhoneStateListene实现)_Android

本文实例讲述了Android监听手机电话状态与发送邮件通知来电号码的方法.分享给大家供大家参考,具体如下: 在android中可以用PhoneStateListener来聆听手机电话状态(比如待机.通话中.响铃等).本例是通过它来监听手机电话状态,当手机来电时,通过邮件将来电号码发送到用户邮箱的例子.具体程序如下: import android.app.Activity; import android.content.Intent; import android.os.Bundle; impor

Android监听获取应用的安装和卸载事件

Android 应用程序的安装和卸载事件,是由系统进行监听并全局广播的,支 持1.5(android 3)以上 因此,如果想要监听获取应用的安装和卸载事 件,只需要自定义一个BroadcastReceiver,来对系统广播进行监听和处理 BroadcastReceiver 是系统全局广播监听类, 其主要方法是onReceive (),自定义的广播类继承于它并实现自己的onReceive()处理逻辑 BroadcastReceiver 使用前,需要进行注册监听(xml和代码两种方式) ,不使用时需

新手学android,监听两个按钮的问题,出现错误

问题描述 新手学android,监听两个按钮的问题,出现错误 package com.example.xingpengfei.guessnumber; import android.content.DialogInterface; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; imp

android 监听返回键怎么从activity 跳转到tabhost主页且选项卡不消失?

问题描述 android 监听返回键怎么从activity 跳转到tabhost主页且选项卡不消失? 我用activity 和tabhost配套使用,当监听返回键时跳转到tabhost主页,发现选项卡消失,不只是为什么?求各位大神解答?谢谢! 解决方案 那要看你点击返回键的函数里面是怎么跳转的

Android监听Home键实例详解_Android

本文实例讲述了Android监听Home键的方法.分享给大家供大家参考,具体如下: 将到android中Home键的监听,很多人第一反应时重写相应Activity的onKeyDown()方法,监听当按下的键的keyCode为KEYCODE_HOME时,进行自己的相应的处理.如: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_HOME) { stop