`
xblia
  • 浏览: 82547 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

android实现电话状态监控

 
阅读更多

要监听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>

分享到:
评论
1 楼 twlkyao 2013-03-22  
谢谢分享。

相关推荐

    androlid电话状态监控

    电话状态监控是Android开发中的一个重要功能,特别是在构建需要与电话服务交互的应用时。核心在于监听并处理电话的不同状态,如空闲(`CALL_STATE_IDLE`)、振铃(`CALL_STATE_RINGING`)以及通话(`CALL_STATE_OFFHOOK`)...

    Android获取通话状态

    具体来说,你需要声明`READ_PHONE_STATE`权限,这允许应用读取设备上的电话状态和身份。以下是示例代码: ```xml &lt;uses-permission android:name="android.permission.READ_PHONE_STATE"/&gt; ``` 这行代码必须放在`...

    Android中采用广播接收者实现短信监控器、拦截外拨电话功能案例

    接下来,我们要实现电话拦截功能,我们需要监听`android.intent.action.NEW_OUTGOING_CALL`这个广播。当用户拨打电话时,系统会发送这个广播。在`onReceive()`方法中,我们可以检查来电号码,并根据需要决定是否阻止...

    Android应用源码之 实现自动接听和挂断电话功能).zip

    要实现自动接听和挂断电话,我们需要获取到PhoneStateListener的监听权限,并注册一个监听器来监控电话状态。 1. **权限请求**:在AndroidManifest.xml中,必须声明`&lt;uses-permission&gt;`标签来请求`READ_PHONE_STATE...

    android 流量监控源码

    在AndroidManifest.xml中,需要声明相应的权限,如INTERNET权限来访问网络,ACCESS_NETWORK_STATE权限来获取网络状态,READ_PHONE_STATE权限来获取设备的电话状态,这些都与流量监控息息相关。 8. **多线程处理**...

    android 电话源码Phone.zip

    本文将聚焦于"android 电话源码Phone.zip",通过对压缩包内的Phone文件进行分析,探讨Android电话功能的实现细节。 首先,我们要明白Android电话功能主要由以下几部分组成:电话服务(PhoneService)、通话管理器...

    Android-Android来去电监听电话挂断

    总之,Android的电话状态监听功能通过PhoneStateListener和TelephonyManager结合使用,可以实现对来电、去电和挂断的跟踪,为开发者提供了一种监控和控制通话行为的方式。但请注意,过度或不当使用这种功能可能会...

    Android电话感知

    1. **Android电话状态**: - **RINGING**:当来电时,系统会将电话状态设置为"RINGING"。此时,电话铃声响起,等待用户接听。 - **OFFHOOK**:这个状态表示电话已经接通,即用户正在进行通话。一旦电话被接听或者...

    android phone 电话源码

    ServiceStateTracker监控网络状态变化,当用户在不同网络之间切换时,它会通知PhoneService调整网络设置。 7. SMS/MMS: 虽然标题提及电话源码,但短信功能也是电话服务的一部分。在Android 4.0中,SMS/MMS的处理...

    Android4.2 Phone 电话模块源码

    2. **通话状态监听(Call State Listening)**:Android通过`CallStateListener`接口允许应用程序监听电话状态的变化,如来电、去电、通话中等。源码中会包含这些状态的处理逻辑。 3. **SIM卡管理(SIM Management...

    使用Android实现联网

    【使用Android实现联网】 在Android平台上,实现联网功能是一项关键任务,这使得应用程序能够与互联网交互,接收和发送数据。Android提供了丰富的API和工具来支持网络编程,使其成为开发联网应用的理想选择。以下是...

    android中电话实现机制

    在Android系统中,电话拨打的实现机制涉及到多个组件和流程,以下是对这一机制的详细解析: 1. **OutgoingCallBroadcaster.java** 当用户点击拨号盘拨打按钮时,系统首先会触发`OutgoingCallBroadcaster.java`中...

    Android应用源码基于安卓的个人隐私监控项目.zip

    隐私监控可能需要用到服务来持续监控设备状态,如网络活动、应用使用情况等。 6. **数据持久化**: 应用可能需要将监控到的数据存储起来,这可能涉及SQLite数据库、文件存储或者云同步等技术。SQLite是Android内置的...

    Android实现信号强度监听的方法

    接下来,我们需要创建一个自定义的`PhoneStateListener`子类,因为`TelephonyManager`提供了`listen()`方法来监听电话状态,而`PhoneStateListener`是监听器接口。创建的子类需要重写`onSignalStrengthsChanged...

    android 电话监听实例

    下面我们将深入探讨如何在Android中实现电话监听功能。 一、注册BroadcastReceiver 首先,你需要创建一个BroadcastReceiver,这个接收器会监听电话状态的变化。在AndroidManifest.xml文件中,添加如下权限: ```...

    Android系列之如何判断网络链接状态

    它允许开发者监听各种电话状态事件,包括数据连接状态的改变。 1. 获取`TelephonyManager`实例: ```java TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)...

    android流量监控软件

    本节将基于《Android应用开发深入学习实录》一书中的流量监控软件源码,详细探讨Android流量监控的实现原理和技术细节。 1. **流量统计基础** - **系统接口**:Android提供了一系列API,如`ConnectivityManager`和...

    android电话系统数据流程分析

    为了实现上述功能,Android电话系统采用了一种层次化的架构,主要包括以下几个关键组件: 1. **RIL (Radio Interface Layer)**:这一层作为电话系统的核心,负责将高层应用请求转换为具体的Modem命令(通常为AT指令...

    ser电话监控

    总结起来,"ser电话监控"是指在Android平台上利用Service组件和PhoneStateListener实现电话状态的监听。这需要理解Service的工作原理、BroadcastReceiver的使用,以及PhoneStateListener的回调机制。同时,要注意...

    android2.3自动接听实现

    在Android开发中,有时需要实现自动接听电话的功能,比如在某些特殊的应用场景下(例如:远程监控、智能家居等)。本文将详细介绍如何在Android 2.3版本中实现自动接听电话功能,并通过示例代码来帮助理解具体实现...

Global site tag (gtag.js) - Google Analytics