Android-通话状态监测
来源:互联网 发布:mac怎么下载单机游戏 编辑:程序博客网 时间:2024/06/05 01:15
在许多的场合需要对通话的状态进行监测,根据不同的通话状态进行不同的操作,代码如下。
import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.telephony.PhoneNumberFormattingTextWatcher;import android.telephony.PhoneNumberUtils;import android.telephony.PhoneStateListener;import android.telephony.ServiceState;import android.telephony.TelephonyManager;import android.util.Log;import android.widget.EditText;public class CheckStatusActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String opName = telManager.getNetworkOperatorName(); Log.i("telephony", "operator name = " + opName); String phoneNumber = telManager.getLine1Number(); Log.i("telephony", "phone number = " + phoneNumber); String providerName = telManager.getSimOperatorName(); Log.i("telephony", "provider name = " + providerName); int callStatus = telManager.getCallState(); String callState = getCallStateString(callStatus); Log.i("telephony", callState); telManager.listen(new PhoneStateListener() { public void onCallStateChanged(int state, String incomingNumber) { String newState = getCallStateString(state); if (state == TelephonyManager.CALL_STATE_RINGING) { Log.i("telephony", newState + " number = " + incomingNumber); } else { Log.i("telephony", newState); } } }, PhoneStateListener.LISTEN_CALL_STATE); ServiceState serviceState = new ServiceState(); int serviceStatus = serviceState.getState(); String serviceStateString = getServiceStateString(serviceStatus); Log.i("telephony", serviceStateString); boolean isRoaming = serviceState.getRoaming(); Log.i("telephony", "Roaming state is " + isRoaming); String formattedNumber = PhoneNumberUtils.formatNumber("9995551212"); Log.i("telephony", formattedNumber); setContentView(R.layout.status); EditText numberEntry = (EditText) findViewById(R.id.number_entry); numberEntry.addTextChangedListener(new PhoneNumberFormattingTextWatcher()); } private String getCallStateString(int callState) { String callStateString = null; switch (callState) { case TelephonyManager.CALL_STATE_IDLE: callStateString = "Phone is idle."; break; case TelephonyManager.CALL_STATE_OFFHOOK: callStateString = "Phone is in use."; break; case TelephonyManager.CALL_STATE_RINGING: callStateString = "Phone is ringing!"; break; } return callStateString; } private String getServiceStateString(int serviceState) { String serviceStateString = null; switch (serviceState) { case ServiceState.STATE_EMERGENCY_ONLY: serviceStateString = "Emergency calls only"; break; case ServiceState.STATE_IN_SERVICE: serviceStateString = "Normal service"; break; case ServiceState.STATE_OUT_OF_SERVICE: serviceStateString = "No service available"; break; case ServiceState.STATE_POWER_OFF: serviceStateString = "Telephony radio is off"; break; } return serviceStateString; }}
0 0
- Android-通话状态监测
- android 获取通话状态
- Android 网络连通状态监测
- Android实践--监测网络状态
- Android实现监测网络状态
- Android之监听phone的通话状态
- android 系统获取通话状态的方法
- android广播监听手机通话状态
- Android-9种通话状态(精确)
- Android之监测网络状态的广播
- Android客户端状态及性能监测
- Android 如何实时监测当前网络状态
- Android发送短信并监测发送状态
- Android 监测手机网络状态变化
- Android开发-网络状态监测-AndroidStudio
- Android判断当前正在通话(电话呼入)的状态
- Android VoLTE 视频通话是否可用状态读取与监听
- Android VoLTE 视频通话是否可用状态读取与监听
- 事务并发
- C3P0访问数据库工具类
- LinkedTransferQueued的使用
- 结构体重点总结
- linux安装nginx个过程
- Android-通话状态监测
- 全面介绍Android Studio中Git 的使用
- CSDN-Markdown编辑器
- Qt第三方圆形进度条-及其改进
- Java中的方法定义
- 交叉编译android版本的gdb
- iOS比较版本(为了在app中提示更新版本)
- OpenGL 4.5 Core Profile管线
- hadoop RPC