`

电话通话几种状态的监听

阅读更多
package com.test.telephone;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.TextView;

public class ActivityMain extends Activity {

	private static final String TAG = "Telephony";
	TextView view = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 获取电话管理的一个类实例
		TelephonyManager mTelephonyMgr = (TelephonyManager) this
				.getSystemService(Context.TELEPHONY_SERVICE);
		// Registers a listener object to receive notification of changes in
		// specified telephony states
		// 建立一个监听器来实时监听电话的通话状态
		mTelephonyMgr.listen(new TeleListener(),
				PhoneStateListener.LISTEN_CALL_STATE);
		view = new TextView(this);
		view.setText("listen the state of phone\n");
		setContentView(view);
	}

	class TeleListener extends PhoneStateListener {

		@Override
		public void onCallStateChanged(int state, String incomingNumber) {
			super.onCallStateChanged(state, incomingNumber);
			switch (state) {
			// 当处于待机状态中
			case TelephonyManager.CALL_STATE_IDLE: {
				Log.e(TAG, "CALL_STATE_IDLE");
				view.append("CALL_STATE_IDLE " + "\n");
				break;
			}
			// 当处于通话中
			case TelephonyManager.CALL_STATE_OFFHOOK: {
				Log.e(TAG, "CALL_STATE_OFFHOOK");
				view.append("CALL_STATE_OFFHOOK" + "\n");
				break;
			}
			// 当处于拨号状态中..
			case TelephonyManager.CALL_STATE_RINGING: {
				Log.e(TAG, "CALL_STATE_RINGING");
				view.append("CALL_STATE_RINGING" + "\n");
				break;
			}
			default:
				break;
			}
		}

	}

}

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 


分享到:
评论

相关推荐

    iOS CoreTelephony 实现监听通话状态

    CTCallState是一个枚举类型,它定义了电话可能的状态,包括但不限于以下几种: - CTCallStateIncoming:呼入状态,表示有来电。 - CTCallStateDialing:呼出状态,表示正在拨打电话。 - CTCallStateConnected:接通...

    电话计费接口(串口通讯)

    电话计费接口是一种用于通信服务提供商或企业内部计费系统的软件接口,它允许系统通过串行端口(串口)进行通信,实现电话通话费用的记录、计算和管理。在这个项目中,我们主要关注的是串口通讯技术及其在电话计费...

    android phone 电话源码

    在Android 4.0中,通话管理包括通话状态监听、多任务通话支持、通话录音等功能。通话状态的变化通过PhoneStateListener的监听器接口传递到上层应用。 5. 电话权限: 进行电话操作需要特定的权限,例如CALL_PHONE、...

    Andriod通话处理流程

    猫相关的状态监听与通知 这里的“猫”通常指的是调制解调器(Modem),其状态的监听和通知机制确保了设备能够根据网络环境的变化调整策略,例如在网络信号不佳时自动重连或切换至更稳定的连接方式。 ##### 4. ...

    利用服务实现电话反复拨打 电话测试小程序

    5. **状态监控**:程序需要跟踪电话的拨打状态,例如是否正在通话、是否有未接来电、通话是否成功等,这通常通过监听电话状态改变的广播接收器(BroadcastReceiver)来实现。 6. **用户体验**:尽管这是一个测试...

    Android 4.4新特性——透明状态栏

    实现透明状态栏主要有以下几种方法: 1. **XML布局调整**: 在Android 4.4及更高版本中,可以通过修改主题主题(Theme)来实现透明状态栏。在res/values/styles.xml文件中,创建一个新的主题,例如`AppTheme....

    基于安卓android的通话时间统计器源码.zip

    5. **权限声明**:在AndroidManifest.xml文件中,必须声明访问电话状态和写入外部存储的权限,因为这是通话统计器所需的基本权限。 6. **通知和提醒**:可能有功能提示用户通话时间已达到预设限制,这部分可能使用...

    android中电话实现机制

    同时,系统会监控通话状态,确保在IDLE、RINGING和OFFHOOK之间正确切换,并通过注册的广播监听器通知用户和应用程序相应的状态变化。 5. **技术背景** 在此过程中,我们提到了几个关键的技术点: - **OTA (Over-...

    这是我的测试打开免提和接通电话

    1. **电话状态监听**:使用Android的`TelephonyManager`类和`PhoneStateListener`来监听电话状态的变化,如来电和拨出电话。 2. **权限管理**:获取必要的权限,如`READ_PHONE_STATE`和`ANSWER_PHONE_CALLS`,以...

    行业分类-设备装置-多媒体一键通话中的通话权控制.zip

    多媒体一键通话,顾名思义,是一种通过一键操作就能快速发起或参与多媒体通话的技术。它整合了语音、视频、数据等多种通信方式,为用户提供高效、便捷的通信体验。然而,随着通信参与者的增多,通话权控制变得尤为...

    Android 仿苹果通话界面源码.zip

    例如,使用ObjectAnimator或ValueAnimator实现按钮按下和释放时的视觉变化,或者注册BroadcastReceiver监听电话状态的变化,以便在电话接通或挂断时更新UI。 总之,"Android 仿苹果通话界面源码"是一个展示如何在...

    HfpClient.zip_电话

    对于HfpClient,其方法可能包括但不限于以下几种: 1. **初始化**:设置蓝牙连接,建立与HFP服务端的连接。这通常涉及查找并连接到具有HFP服务的设备。 2. **接听电话**:通过发送特定的AT命令(如AT+CHFA)来接听...

    利用MSComm控件拨电话

    6. **处理通话**:电话拨通后,可以监听通话过程,或者发送更多指令进行挂断、静音等操作。 7. **关闭串口**:通话结束后,设置PortOpen为False,关闭串行端口。 在提供的压缩包文件“实例168)利用MSComm控件拨...

    Android应用源码之sipdroid语音及视频通话.zip

    `SipAudioCall`提供了监听器接口,如`OnCallStateChangedListener`,开发者可以通过监听这些接口回调来实现通话状态的实时更新。 对于视频通话,SipDroid会使用到`SipVideoCall`类,这是`SipAudioCall`的子类,增加...

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

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

    C# 电话客服系统源码

    6. **Web界面**:客服代表通常通过Web界面接听和处理电话,系统应提供实时的通话状态显示、客户信息查看等功能。ASP.NET,C#的一部分,可以用于构建这样的Web应用。 7. **日志与报表**:系统应记录各类操作日志,并...

    TUICallKit.js

    5. **状态监听**:为了及时响应通话状态的变化,开发者可以注册监听器,如`TUICallKit.on('callStateChange', callback)`来获取通话状态的实时更新。 6. **错误处理**:在可能出现的网络问题或用户操作错误时,...

    Android应用开发全程实录-实现甩动拨打和挂断电话

    - **挂断电话**:通过调用`closePhone`方法来挂断电话,该方法会使用`ITelephony`接口来控制通话状态。 ```java @Override public void onSensorChanged(SensorEvent event) { float x = event.values[0]; float ...

    TAPI开发电话防火墙

    3. **TAPI事件处理**:TAPI使用事件驱动模型,通过注册回调函数来监听电话状态变化,如来电、去电、通话结束等。这些事件是构建防火墙规则的基础,因为它们允许程序实时响应电话活动。 4. **防火墙规则**:设计和...

    PhoneFactory文件

    2. **注册监听器**:PhoneFactory会注册各种监听器,如来电监听器、去电监听器等,以便在电话状态发生变化时,如通话开始、结束、挂断等,能及时通知系统和应用程序。 3. **隐藏拨号界面**:描述中提到的功能是...

Global site tag (gtag.js) - Google Analytics