要监听android打电话和接电话,只需下面2步骤
1.第一步,写一个Receiver继承自BroadcastReceiver
public class PhoneStatReceiver extends BroadcastReceiver{
private static final String TAG = "PhoneStatReceiver";
// private static MyPhoneStateListener phoneListener = new MyPhoneStateListener();
private static boolean incomingFlag = false;
private static String incoming_number = null;
@Override
public void onReceive(Context context, Intent intent) {
//如果是拨打电话
if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){
incomingFlag = false;
String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Log.i(TAG, "call OUT:"+phoneNumber);
}else{
//如果是来电
TelephonyManager tm =
(TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE);
switch (tm.getCallState()) {
case TelephonyManager.CALL_STATE_RINGING:
incomingFlag = true;//标识当前是来电
incoming_number = intent.getStringExtra("incoming_number");
Log.i(TAG, "RINGING :"+ incoming_number);
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
if(incomingFlag){
Log.i(TAG, "incoming ACCEPT :"+ incoming_number);
}
break;
case TelephonyManager.CALL_STATE_IDLE:
if(incomingFlag){
Log.i(TAG, "incoming IDLE");
}
break;
}
}
}
}
第二步:在AndroidManifest.xml,配置写好的Receiver,并拦截相应的BroadCastAction,
另外注意加上相应的权限。
<receiver android:name=".filter.PhoneStatReceiver">
<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>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission>
分享到:
相关推荐
电话状态监控是Android开发中的一个重要功能,特别是在构建需要与电话服务交互的应用时。核心在于监听并处理电话的不同状态,如空闲(`CALL_STATE_IDLE`)、振铃(`CALL_STATE_RINGING`)以及通话(`CALL_STATE_OFFHOOK`)...
具体来说,你需要声明`READ_PHONE_STATE`权限,这允许应用读取设备上的电话状态和身份。以下是示例代码: ```xml <uses-permission android:name="android.permission.READ_PHONE_STATE"/> ``` 这行代码必须放在`...
接下来,我们要实现电话拦截功能,我们需要监听`android.intent.action.NEW_OUTGOING_CALL`这个广播。当用户拨打电话时,系统会发送这个广播。在`onReceive()`方法中,我们可以检查来电号码,并根据需要决定是否阻止...
要实现自动接听和挂断电话,我们需要获取到PhoneStateListener的监听权限,并注册一个监听器来监控电话状态。 1. **权限请求**:在AndroidManifest.xml中,必须声明`<uses-permission>`标签来请求`READ_PHONE_STATE...
总之,Android的电话状态监听功能通过PhoneStateListener和TelephonyManager结合使用,可以实现对来电、去电和挂断的跟踪,为开发者提供了一种监控和控制通话行为的方式。但请注意,过度或不当使用这种功能可能会...
在AndroidManifest.xml中,需要声明相应的权限,如INTERNET权限来访问网络,ACCESS_NETWORK_STATE权限来获取网络状态,READ_PHONE_STATE权限来获取设备的电话状态,这些都与流量监控息息相关。 8. **多线程处理**...
本文将聚焦于"android 电话源码Phone.zip",通过对压缩包内的Phone文件进行分析,探讨Android电话功能的实现细节。 首先,我们要明白Android电话功能主要由以下几部分组成:电话服务(PhoneService)、通话管理器...
1. **Android电话状态**: - **RINGING**:当来电时,系统会将电话状态设置为"RINGING"。此时,电话铃声响起,等待用户接听。 - **OFFHOOK**:这个状态表示电话已经接通,即用户正在进行通话。一旦电话被接听或者...
ServiceStateTracker监控网络状态变化,当用户在不同网络之间切换时,它会通知PhoneService调整网络设置。 7. SMS/MMS: 虽然标题提及电话源码,但短信功能也是电话服务的一部分。在Android 4.0中,SMS/MMS的处理...
2. **通话状态监听(Call State Listening)**:Android通过`CallStateListener`接口允许应用程序监听电话状态的变化,如来电、去电、通话中等。源码中会包含这些状态的处理逻辑。 3. **SIM卡管理(SIM Management...
【使用Android实现联网】 在Android平台上,实现联网功能是一项关键任务,这使得应用程序能够与互联网交互,接收和发送数据。Android提供了丰富的API和工具来支持网络编程,使其成为开发联网应用的理想选择。以下是...
在Android系统中,电话拨打的实现机制涉及到多个组件和流程,以下是对这一机制的详细解析: 1. **OutgoingCallBroadcaster.java** 当用户点击拨号盘拨打按钮时,系统首先会触发`OutgoingCallBroadcaster.java`中...
隐私监控可能需要用到服务来持续监控设备状态,如网络活动、应用使用情况等。 6. **数据持久化**: 应用可能需要将监控到的数据存储起来,这可能涉及SQLite数据库、文件存储或者云同步等技术。SQLite是Android内置的...
接下来,我们需要创建一个自定义的`PhoneStateListener`子类,因为`TelephonyManager`提供了`listen()`方法来监听电话状态,而`PhoneStateListener`是监听器接口。创建的子类需要重写`onSignalStrengthsChanged...
下面我们将深入探讨如何在Android中实现电话监听功能。 一、注册BroadcastReceiver 首先,你需要创建一个BroadcastReceiver,这个接收器会监听电话状态的变化。在AndroidManifest.xml文件中,添加如下权限: ```...
它允许开发者监听各种电话状态事件,包括数据连接状态的改变。 1. 获取`TelephonyManager`实例: ```java TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)...
本节将基于《Android应用开发深入学习实录》一书中的流量监控软件源码,详细探讨Android流量监控的实现原理和技术细节。 1. **流量统计基础** - **系统接口**:Android提供了一系列API,如`ConnectivityManager`和...
为了实现上述功能,Android电话系统采用了一种层次化的架构,主要包括以下几个关键组件: 1. **RIL (Radio Interface Layer)**:这一层作为电话系统的核心,负责将高层应用请求转换为具体的Modem命令(通常为AT指令...
总结起来,"ser电话监控"是指在Android平台上利用Service组件和PhoneStateListener实现电话状态的监听。这需要理解Service的工作原理、BroadcastReceiver的使用,以及PhoneStateListener的回调机制。同时,要注意...
在Android开发中,有时需要实现自动接听电话的功能,比如在某些特殊的应用场景下(例如:远程监控、智能家居等)。本文将详细介绍如何在Android 2.3版本中实现自动接听电话功能,并通过示例代码来帮助理解具体实现...