<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> class MyPhoneStateListener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch(state) {
case TelephonyManager.CALL_STATE_IDLE: //空闲
break;
case TelephonyManager.CALL_STATE_RINGING: //来电
break;
case TelephonyManager.CALL_STATE_OFFHOOK: //摘机(正在通话中)
break;
}
}
}
//获取电话通讯服务
TelephonyManager tpm = (TelephonyManager) this
.getSystemService(Context.TELEPHONY_SERVICE);
//创建一个监听对象,监听电话状态改变事件
tpm.listen(new MyPhoneStateListener(),
PhoneStateListener.LISTEN_CALL_STATE);
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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;
}
}
}
}
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><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>
相关推荐
要监听电话状态,首先需要在AndroidManifest.xml中声明必要的权限。这些权限包括: - PROCESS_OUTGOING_CALLS:用于拦截和处理外拨电话。 - READ_PHONE_STATE:用于读取电话状态,例如获取来电号码等信息。 注册...
在Android系统中,监听电话状态是一项重要的功能,它允许开发者获取到电话的实时信息,比如来电、去电、通话结束等事件。这项功能通常应用于电话录音、来电管理、短信拦截等场景。本教程将深入探讨如何在Android应用...
在Android系统中,监听电话状态是一项重要的功能,它允许开发者获取到电话的呼叫事件,例如来电、去电、通话结束等。这对于开发电话管理应用、来电显示应用或者通话记录应用等非常有用。在这个"Android中监听电话...
// 处理来电状态,如显示来电信息 break; case TelephonyManager.CALL_STATE_OFFHOOK: // 通话中 // 处理通话进行中状态 break; } } }; telephonyManager.listen(phoneStateListener, PhoneStateListener....
在Android平台上,监听电话呼叫状态是一项重要的功能,它允许开发者获取到电话的实时状态,例如来电、通话中或挂断等。以下将详细介绍如何在Android应用中实现这一功能,包括必要的权限控制和电话状态监听。 首先,...
在Android系统中,监听电话状态是一项重要的功能,它允许开发者获取到电话的实时信息,比如来电、去电、通话结束等事件。这个压缩包“Android程序研发源码Android中监听电话状态.zip”很可能包含了实现这一功能的...
在Android应用开发中,监听电话状态是一项常见的需求,特别是在实现通信相关的功能时,例如通话记录、来电显示或者短信拦截等。这份"Android应用源码之中监听电话状态"的资源是针对这一主题的一个学习Demo,适合...
Android源码_Android中监听电话状态.zip
技术资料分享技术资料分享Android源码_Android中监听电话状态.zip
- `PhoneStateListener`是系统提供的监听电话状态变化的类,通过注册监听器来捕捉来电、去电、电话挂断等事件。 - 示例代码中,使用了`PhoneReceiver`类继承自`BroadcastReceiver`,并重写了`onReceive`方法来处理...
这一功能在Android开发中可以通过使用TelephonyManager类的监听电话状态的方法来实现。 首先,需要明确TelephonyManager类是Android系统提供的一个用于访问电话服务信息的类。通过这个类,开发者可以监听到电话的...
应用程序可以注册listener来监听电话状态的改变。我们不能对TelephonyManager进行实例化,只能通过获取服务的形式: Context.getSystemService(Context.TELEPHONY_SERVICE); 注意:对手机的某些信息进行读取是需要...
然后,我们需要在AndroidManifest.xml中声明权限,以允许应用监听电话状态。这包括READ_PHONE_STATE和INTERNET权限: ```xml ``` 接下来,我们要在Service中注册并使用电话监听器。首先在Service的...
为了监听电话状态的变化,开发者需要注册一个广播接收器(`BroadcastReceiver`),并监听特定的广播动作,如`TelephonyManager.ACTION_PHONE_STATE_CHANGED`。 ### 必需的权限 在Android中,监听电话状态涉及到用户...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
对于监听电话状态,需要添加`READ_PHONE_STATE`权限,这样我们的应用才能访问电话的状态信息。在`onReceive()`方法中,通过`TelephonyManager`的`getCallState()`方法可以获取当前的电话状态,如IDLE(空闲)、...
使用`TelephonyManager`类可以监听电话状态。通过注册`PhoneStateListener`并重写`onCallStateChanged()`方法,可以获取到电话的状态变化,如通话开始、结束和呼叫等待等。 3. **短信监听**: 实现`...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
首先,为了监听电话状态,我们需要创建一个实现了PhoneStateListener接口的类。PhoneStateListener提供了多种回调方法,例如onCallStateChanged(),这个方法会在电话状态改变时被调用。我们主要关注的状态有...