android中监听来电和去电,这种功能的实现也许会在一些项目中经常实现,尤其一些防盗软件,这里为大家分享一下很不错的Android监听来电和去电的源码:
要监听android打电话和接电话,只需下面2步骤
1.第一步,写一个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" />
分享到:
相关推荐
### Android监听来电和去电的原理 Android系统通过`TelephonyManager`类提供了对电话状态的访问,这包括但不限于电话号码、信号强度和电话状态(如空闲、振铃或通话中)。为了监听电话状态的变化,开发者需要注册一...
以下是对Android监听来电和去电的详细实现方法: 首先,你需要创建一个自定义的BroadcastReceiver类,这个类需要继承自BroadcastReceiver。在这个类中,你需要重写`onReceive()`方法,这是BroadcastReceiver接收到...
实现手机电话状态的监听,主要依靠两个类:TelephoneManger和PhoneStateListener。 TelephonseManger提供了取得手机基本服务的信息的一种方式。因此应用程序可以使用TelephonyManager来探测手机基本服务的情况。应用...
在Android平台上,来电和去电的监听以及电话挂断的处理是通过系统级别的电话状态监听器(PhoneStateListener)实现的。这个功能涉及到Android的电信服务API,它允许应用程序接收和响应电话事件,如通话开始、结束、...
在Android系统中,获取来电和去电号码是开发者经常需要处理的任务,这主要涉及到电话管理和广播接收器的相关知识。下面将详细阐述如何实现这一功能。 首先,我们需要了解Android的权限管理。由于涉及到用户隐私,...
在Android开发中,拨号键盘和来去电监听是两个重要的功能模块,它们涉及到用户与设备的通信交互。本文将详细解析如何实现这样的功能,并提供相关的编程知识点。 首先,我们来了解一下拨号键盘的实现。在Android系统...
- `PhoneStateListener`是系统提供的监听电话状态变化的类,通过注册监听器来捕捉来电、去电、电话挂断等事件。 - 示例代码中,使用了`PhoneReceiver`类继承自`BroadcastReceiver`,并重写了`onReceive`方法来处理...
在Android平台上,监听来电和去电是通过特定的API实现的,主要涉及到`PhoneStateListener`和广播接收器。下面将详细阐述这两个方法,并探讨它们的用途和注意事项。 首先,我们来看来电监听。来电监听主要利用`...
总之,实现“android 来电去电 通话 弹出对话框显示号码信息”功能,需要掌握电话状态监听、权限申请、UI设计以及窗口管理等多个Android核心知识点,同时考虑系统的兼容性和用户界面的交互体验。
3. **监听来电事件**:当手机接收到来电时,我们需要获取到这个事件并启动我们的自定义来电界面。无障碍服务的配置文件(`AndroidManifest.xml`)需要声明权限和服务,服务类需要继承`AccessibilityService`,并重写...
Android提供了一个名为PhoneStateListener的接口,用于监听电话状态的变化,包括来电、去电和通话结束。我们需要创建一个PhoneStateListener的子类,并重写onCallStateChanged方法,以监听来电事件。 3. **自定义...
然后,我们可以注册一个`PhoneStateListener`,通过`listen()`方法监听电话的状态变化,如来电、去电、通话结束等。监听的事件包括`PHONE_STATE`、`CALL_STATE`等,对应的枚举值有`TelephonyManager.CALL_STATE_...
`PhoneStateListener`则用于监听电话状态的变化,例如来电、去电、通话结束等。 1. 获取`TelephonyManager`实例: ```java TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context....
首先,电话监听器(PhoneStateListener)是Android提供的一个接口,用于监听手机的通话状态,如来电、去电、通话结束等事件。要实现电话监听,我们需要创建一个PhoneStateListener的子类,并重写其中的...
在Android系统中,监听电话状态是一项重要的功能,它允许开发者获取到电话的实时信息,比如来电、去电、通话结束等事件。这项功能通常应用于电话录音、来电管理、短信拦截等场景。本教程将深入探讨如何在Android应用...
注册一个`PhoneStateListener`,并重写`onCallStateChanged()`方法,可以在电话状态改变时接收到回调,例如来电、去电、通话结束等。 3. **短信监听**: 监听短信需要注册`BroadcastReceiver`,并重写`onReceive()...
- `READ_PHONE_STATE`:获取电话状态,包括来电、去电和通话状态。 - `PROCESS_OUTGOING_CALLS`:处理拨出电话,这里主要用于挂断。 - `MODIFY_PHONE_STATE`:修改电话状态,允许挂断电话,但此权限通常仅对系统...
开发者需要在AndroidManifest.xml中添加相应的权限,如READ_PHONE_STATE和CALL_LOG,以便获取电话的状态信息,包括来电、去电和通话状态。PhoneStateListener的onCallStateChanged()方法会在电话状态改变时被触发,...