`

【android】电话接听状态事件

阅读更多
androidmanifest权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>


首先获取TelephonyManager实例。
其和获取其他系统服务一样采用getSystemService方法获得。
        TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);


然后使用telephonyManager监听事件。采用TelephonyManager.listen(PhoneStateListener listener, int events)方法。复写PhoneStateListener中的onCallStateChanged方法。使其得到状态变化的信息进行输出。

源代码如下:
package com.duduli.li;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;

public class CallMe2Activity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
        
        tm.listen(new MyPhoneState(), PhoneStateListener.LISTEN_CALL_STATE);
        
        
        
    }
    
    class MyPhoneState extends PhoneStateListener{

		@Override
		public void onCallStateChanged(int state, String incomingNumber) {
			// TODO Auto-generated method stub
			super.onCallStateChanged(state, incomingNumber);
			
			switch (state) {
			case 0x00000000:
				System.out.println("CALL_STATE_IDLE");
				break;
			case 0x00000002:
				System.out.println("CALL_STATE_OFFHOOK");
				break;
			case 0x00000001:
				System.out.println("CALL_STATE_RINGING");
				break;

			default:
				break;
			}
		}
    	
    }; 
    
}

CALL_STATE_IDLE 为电话空闲状态。
CALL_STATE_OFFHOOK  电话接通后的状态。
CALL_STATE_RINGING  如果有电话进来(没有接听)。
分享到:
评论
1 楼 zhouming4455 2014-01-24  

相关推荐

    Android广播接实现监听电话状态(电话的状态,拦截)

    在Android平台上,对电话状态的监听和拦截是一个需要特别权限和精确实现的敏感操作,这涉及到Android的权限管理、广播接收器(BroadcastReceiver)、事件监听机制以及电话状态的处理。以下知识点将详细介绍如何实现这...

    Android自动接听电话程序

    `PROCESS_OUTGOING_CALLS`用于处理拨打电话事件,`READ_PHONE_STATE`允许读取电话状态,而`MODIFY_PHONE_STATE`则允许修改电话状态,如接听或挂断电话。 接下来,**来电监听**是自动接听的核心部分。我们可以通过...

    Android自定义滑动接听电话控件组

    在Android开发中,自定义滑动接听电话控件组是一种常见的功能实现,它为用户提供了一种直观、便捷的接听电话方式。这样的控件通常由一个显示来电信息的界面和一个可滑动的接听/挂断按钮组成。在这个场景中,我们将...

    android 自动接听电话和挂断(支持所有版本)

    综上所述,实现Android自动接听和挂断电话的功能涉及到权限管理、电话状态监听、启动接听动作、挂断操作、适配不同版本的Android以及处理用户权限等关键知识点。在开发过程中需要注意系统的限制和用户的安全,确保...

    android2.3 电话接听解决方法

    在Android系统中,电话接听功能是通过特定的API和组件实现的。在Android 2.3(Gingerbread)版本中,虽然已有较早的版本支持通话管理,但该版本的一些特性和限制仍然值得深入探讨。这篇博客文章可能提供了一些关于...

    android接听电话源码

    总的来说,Android接听电话涉及到的源码包括电话服务、电话状态监听、通话UI管理、底层通信接口、音频处理等多个方面。深入理解这些组件和它们之间的交互,可以帮助开发者更好地实现自定义通话功能或者优化通话体验...

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

    在Android应用开发中,实现自动接听和挂断电话的功能是一个高级话题,涉及到系统级权限、来电监听和服务等关键概念。这个源码项目提供了一个实际的示例,可以帮助开发者理解和掌握这些技术。 首先,我们要理解...

    Android来电接听或挂断界面源码

    这个"Android来电接听或挂断界面源码"项目提供了一个自定义的解决方案,允许用户通过左右滑动来接听或挂断电话,增加了操作的便捷性和用户体验。下面我们将详细探讨这个源码实现的关键知识点。 1. **自定义接收器...

    android手机静默接听

    在Android中,处理电话事件需要获取相应的系统权限。首先,需要在AndroidManifest.xml文件中添加以下权限: ```xml &lt;uses-permission android:name="android.permission.READ_PHONE_STATE" /&gt; &lt;uses-permission ...

    安卓开发-Android 实现自动接听和挂断电话功能.zip.zip

    Android电话服务是由系统的`com.android.server.telecom`组件提供的,它管理着手机的所有通话活动。由于涉及到用户隐私和系统安全,这部分功能需要获得相应的系统权限。 1. **权限申请**: - `READ_PHONE_STATE`: ...

    android2.3自动接听实现

    本文将详细介绍如何在Android 2.3版本中实现自动接听电话功能,并通过示例代码来帮助理解具体实现细节。 #### 核心知识点详解 1. **关键类与接口** - **TelephonyManager**:提供了一系列与电话服务相关的操作...

    Android手机模拟点击实现自动接听电话和免提功能 模拟点击自动免提TelPhone1.1.5.rar

    通过创建并配置 AccessibilityService,我们可以监听到电话接听的界面,并在接收到电话时执行自定义操作。 3. **模拟点击**:在Android中,模拟点击通常通过发送MotionEvent来实现。例如,可以创建一个MotionEvent ...

    安卓Android源码——实现自动接听和挂断电话功能.zip

    在安卓(Android)平台上,开发一个能够自动接听和挂断电话的应用程序涉及到多个核心知识点,这些功能通常是通过监听系统的电话状态来实现的。本项目提供的源码深入展示了如何利用Android的电话管理和广播接收器机制...

    实现自动接听和挂断电话功能

    在Android平台上,实现自动接听和挂断电话的功能主要涉及到电话管理和服务组件的使用。这个功能在某些场景下非常有用,比如在驾驶时自动接听电话,或者在自动化测试中模拟用户行为。下面我们将深入探讨如何在Android...

    android电话状态

    以下是关于Android电话状态的详细解析: 1. 通话状态(Call State) Android提供了通话状态枚举类,用于表示电话的不同阶段。这些状态包括: - IDLE:待机状态,电话未连接。 - ACTIVE:通话中。 - HOLDING:...

    Android 4.2 电话被动接听流程(MT)分析

    RIL.java位于frameworks/opt/telephony/src/com/android/internal/telephony目录下,是Android电话系统中负责与Radio硬件通信的一个重要组件。在电话的呼出流程的最后,RIL.java会启动一个RILReceiver的Runnable线程...

    Android 检测判断手机的待机状态.rar

    Android 检测判断手机的待机状态,比如手机正在处于待机状态、手机正在响铃、手机正在震动、手机已接听电话、手机正在连接来电等等的一些状态,使用了Case语句来判断各个状态。  case TelephonyManager.CALL_STATE_...

Global site tag (gtag.js) - Google Analytics