解析Android游戏中获取电话状态进行游戏暂停或继续的解决方法

 更新时间:2013年05月20日 17:36:39   作者:  
本篇文章是对在Android游戏中获取电话状态进行游戏暂停或继续的方法进行了详细的分析介绍,需要的朋友参考下
对智能手机有所了解的朋友都知道其中一个应用广泛的手机操作系统Android 开源手机操作系统。那么在这一系统中想要实现通话的监听功能的话,我们应当如何操作呢?在这里就为大家详细介绍了Android监听通话的相关实现方法。

开发应用程序的时候,我们希望能够监听电话的呼入,以便执行暂停音乐播放器等操作,当电话结束之后,再次恢复播放。在Android平台可以通过TelephonyManager和PhoneStateListener来完成此任务。
TelephonyManager作为一个Service接口提供给用户查询电话相关的内容,比如IMEI,LineNumber1等。通过下面的代码即可获得TelephonyManager的实例。
java代码:
复制代码 代码如下:

TelephonyManager mTelephonyMgr = (TelephonyManager) this  .getSystemService(Context.TELEPHONY_SERVICE);

在Android平台中,PhoneStateListener是个很有用的监听器,用来监听电话的状态,比如呼叫状态和连接服务等。Android监听通话方法如下所示:
java代码:
复制代码 代码如下:

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监听通话。
java代码:
mTelephonyMgr.listen(new TeleListener(),  PhoneStateListener.LISTEN_CALL_STATE);
下面是个简单的测试例子,只是把呼叫状态追加到TextView之上。
java代码:
复制代码 代码如下:

package eoe.demo;
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\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; 

}
}
}

不要忘记在AndroidManifest.xml里面添加个permission.
java代码:
< uses-permission android:name="android.permission.READ_PHONE_STATE" />

相关文章

  • Android build文件的删除的方法

    Android build文件的删除的方法

    本篇文章主要介绍了Android build文件的删除的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Android Studio3.2中导出jar包的过程详解

    Android Studio3.2中导出jar包的过程详解

    这篇文章主要介绍了Android Studio3.2中导出jar包的过程,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Android实现上拉吸顶效果

    Android实现上拉吸顶效果

    这篇文章主要为大家详细介绍了Android实现上拉吸顶效果,上滑标题固定在顶部,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Android 布局中的android:onClick的使用方法总结

    Android 布局中的android:onClick的使用方法总结

    这篇文章主要介绍了Android 布局中的android:onClick的使用方法总结的相关资料,设置点击时从上下文中调用指定的方法,这里提供实例帮助大家理解这部分内容,需要的朋友可以参考下
    2017-08-08
  • 全面解析Android应用开发中Activity类的用法

    全面解析Android应用开发中Activity类的用法

    这篇文章主要介绍了Android应用开发中Activity类的用法,包括Activity间的数据传递以及Activity的创建方式等,需要的朋友可以参考下
    2016-02-02
  • Flutter进阶之实现动画效果(八)

    Flutter进阶之实现动画效果(八)

    这篇文章主要为大家详细介绍了Flutter进阶之实现动画效果的第八篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Android Studio实现帧动画

    Android Studio实现帧动画

    这篇文章主要为大家详细介绍了Android Studio实现帧动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Android实现图片轮播列表

    Android实现图片轮播列表

    这篇文章主要为大家详细介绍了Android实现图片轮播列表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • 详解Android Studio 3.0的新特性与适配

    详解Android Studio 3.0的新特性与适配

    这篇文章主要介绍了详解Android Studio 3.0的新特性与适配,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Android贝塞尔曲线实现填充不规则图形并随手指运动

    Android贝塞尔曲线实现填充不规则图形并随手指运动

    这篇文章主要为大家详细介绍了Android贝塞尔曲线实现填充不规则图形,并随手指运动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09

最新评论