Android 实现通话监听功能
来源:互联网 发布:midascore是什么软件 编辑:程序博客网 时间:2024/03/29 04:59
对智能手机有所了解的朋友都知道其中一个应用广泛的手机操作系统Android 开源手机操作系统。那么在这一系统中想要实现通话的监听功能的话,我们应当如何操作呢?在这里就为大家详细介绍了Android监听通话的相关实现方法。
开发应用程序的时候,我们希望能够监听电话的呼入,以便执行暂停音乐播放器等操作,当电话结束之后,再次恢复播放。在Android平台可以通过 TelephonyManager和PhoneStateListener来完成此任务。
TelephonyManager作为一个Service接口提供给用户查询电话相关的内容,比如IMEI,LineNumber1等。通过下面的代码即可获得TelephonyManager的实例。
TelephonyManager mTelephonyMgr = (TelephonyManager) this
.getSystemService(Context.TELEPHONY_SERVICE);
在Android平台中,PhoneStateListener是个很有用的监听器,用来监听电话的状态,比如呼叫状态和连接服务等。Android监听通话方法如下所示:
public void onCallForwardingIndicatorChanged(boolean cfi)
public void onCallStateChanged(int state,
String incomingNumber)
public void onCellLocationChanged(CellLocation location)
public void onDataActivity(int direction)
public void onDataConnectionStateChanged(int state)
public void onMessageWaitingIndicatorChanged(boolean mwi)
public void onServiceStateChanged
(ServiceState serviceState)
public void onSignalStrengthChanged(int asu)
这里我们只需要覆盖onCallStateChanged()方法即可监听呼叫状态。在TelephonyManager中定义了三种状态,分别是振铃(RINGING),摘机(OFFHOOK)和空闲(IDLE),我们通过state的值就知道现在的电话状态了。
获得了TelephonyManager接口之后,调用listen()方法即可实现Android监听通话。
mTelephonyMgr.listen(new TeleListener(),
PhoneStateListener.LISTEN_CALL_STATE);
下面是个简单的测试例子,只是把呼叫状态追加到TextView之上。
package com.j2medev;
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 Telephony 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);
mTelephonyMgr.listen(new TeleListener(),
PhoneStateListener.LISTEN_CALL_STATE);
view = new TextView(this);
view.setText("listen the state of phone ");
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 " + " ");
break;
}
case TelephonyManager.CALL_STATE_OFFHOOK: {
Log.e(TAG, "CALL_STATE_OFFHOOK");
view.append("CALL_STATE_OFFHOOK" + " ");
break;
}
case TelephonyManager.CALL_STATE_RINGING: {
Log.e(TAG, "CALL_STATE_RINGING");
view.append("CALL_STATE_RINGING" + " ");
break;
}
default:
break;
}
}
}
}
不要忘记在AndroidManifest.xml里面添加个permission.
< uses-permission android:name=
"android.permission.READ_PHONE_STATE" />
以上即Android监听通话的具体操作方法
- Android 实现通话监听功能
- Android实现通话呼叫转移与监听通话录音功能
- Android 实现通话监听
- Android 通话录音功能实现
- 【娱乐】Android实现监听通话、发送短信
- android通话监听类
- Android通话接通监听
- Android实现监听手机通话--仅供学习使用--
- android 通话录音功能
- android 拨打紧急号码,通话时开启免提功能实现
- android开发——手机通话功能实现
- android实现通话录音
- Android监听通话正确操作方法介绍
- Android之监听phone的通话状态
- android广播监听手机通话状态
- android来电监听功能的实现
- Android实现组合键监听功能
- Android实现组合键监听功能
- 痛苦..............
- Linux下常用压缩格式的压缩与解压方法
- SharePoint要在master page中动态显示List数据的几种方式
- 收藏:十个技术含量超高的JS图片展示特效
- 测试用例
- Android 实现通话监听功能
- 各位高手大师请帮忙
- Android设计缺陷--无法通话录音
- 程序求助
- 我的CSDN博客开始了,在这里写SAP笔记
- net3层架构
- mysql explain的使用说明
- 配置Spring数据源c3p0与dbcp
- 基于Au1200的多媒体播放终端设计 PXA270 AU1200