Android中如何监听通话-创新互联

这篇“Android中如何监听通话”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android中如何监听通话”文章吧。

公司主营业务:网站设计、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出徽县免费做网站回馈大家。

TelephonyManager作为一个Service接口提供给用户查询电话相关的内容,比如IMEI,LineNumber1等。通过下面的代码即可获得TelephonyManager的实例。

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

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

  1. public void onCallForwardingIndicatorChanged(boolean cfi)

  2. public void onCallStateChanged(int state, 
    String incomingNumber)

  3. public void onCellLocationChanged(CellLocation location)

  4. public void onDataActivity(int direction)

  5. public void onDataConnectionStateChanged(int state)

  6. public void onMessageWaitingIndicatorChanged(boolean mwi)

  7. public void onServiceStateChanged
    (ServiceState serviceState)

  8. public void onSignalStrengthChanged(int asu)

这里我们只需要覆盖onCallStateChanged()方法即可监听呼叫状态。在TelephonyManager中定义了三种状态,分别是振铃(RINGING),摘机(OFFHOOK)和空闲(IDLE),我们通过state的值就知道现在的电话状态了。

获得了TelephonyManager接口之后,调用listen()方法即可实现Android监听通话。

mTelephonyMgr.listen(new TeleListener(),  PhoneStateListener.LISTEN_CALL_STATE);

下面是个简单的测试例子,只是把呼叫状态追加到TextView之上。

  1. package com.j2medev;

  2. import android.app.Activity;

  3. import android.content.Context;

  4. import android.os.Bundle;

  5. import android.telephony.PhoneStateListener;

  6. import android.telephony.TelephonyManager;

  7. import android.util.Log;

  8. import android.widget.TextView;

  9. public class Telephony extends Activity {

  10. private static final String TAG = "Telephony";

  11. TextView view = null;

  12. @Override

  13. protected void onCreate(Bundle savedInstanceState) {

  14. super.onCreate(savedInstanceState);

  15. TelephonyManager mTelephonyMgr = (TelephonyManager) this

  16. .getSystemService(Context.TELEPHONY_SERVICE);

  17. mTelephonyMgr.listen(new TeleListener(),

  18. PhoneStateListener.LISTEN_CALL_STATE);

  19. view = new TextView(this);

  20. view.setText("listen the state of phone\n");

  21. setContentView(view);

  22. }

  23. class TeleListener extends PhoneStateListener {

  24. @Override

  25. public void onCallStateChanged(int state, 
    String incomingNumber) {

  26. super.onCallStateChanged(state, incomingNumber);

  27. switch (state) {

  28. case TelephonyManager.CALL_STATE_IDLE: {

  29. Log.e(TAG, "CALL_STATE_IDLE");

  30. view.append("CALL_STATE_IDLE " + "\n");

  31. break;

  32. }

  33. case TelephonyManager.CALL_STATE_OFFHOOK: {

  34. Log.e(TAG, "CALL_STATE_OFFHOOK");

  35. view.append("CALL_STATE_OFFHOOK" + "\n");

  36. break;

  37. }

  38. case TelephonyManager.CALL_STATE_RINGING: {

  39. Log.e(TAG, "CALL_STATE_RINGING");

  40. view.append("CALL_STATE_RINGING" + "\n");

  41. break;

  42. }

  43. default:

  44. break;

  45. }

  46. }

  47. }

  48. }

不要忘记在AndroidManifest.xml里面添加个permission.

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

以上就是关于“Android中如何监听通话”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。


网站标题:Android中如何监听通话-创新互联
网站URL:http://bzwzjz.com/article/dieges.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 重庆外贸网站建设 达州网站设计 成都营销网站建设 成都网站建设 网站建设方案 成都品牌网站建设 成都网站设计 成都企业网站设计 成都网站建设 自适应网站建设 成都网站设计公司 成都网站建设 梓潼网站设计 成都网站设计 成都网站建设 成都网站制作 重庆企业网站建设 定制网站制作 网站设计 品牌网站建设 品牌网站建设 成都网站建设