Android监听来电和去电的实现方法

 更新时间:2016年08月12日 10:39:15   作者:与时俱进  
这篇文章主要介绍了Android监听来电和去电的实现方法,涉及Android中BroadcastReceiver组件的使用及AndroidManifest.xml权限操作的相关技巧,需要的朋友可以参考下

本文实例讲述了Android监听来电和去电的实现方法。分享给大家供大家参考,具体如下:

要监听android打电话和接电话,只需下面2步骤

第一步,写一个Receiver继承自BroadcastReceiver

import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;
public class PhoneStateBroadCastReceiver extends BroadcastReceiver
{
 private static final String TAG = "PhoneStateBroadCastReceiver";
 private static boolean mIncomingFlag = false;
 private static String mIncomingNumber = null;
 @Override
 public void onReceive(Context context, Intent intent)
 {
 // 如果是拨打电话
 if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL))
 {
  mIncomingFlag = false;
  String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
  Log.i(TAG, "call OUT:" + phoneNumber);
 } else
 {
  // 如果是来电
  TelephonyManager tManager =
  (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
  switch (tManager.getCallState())
  {
  case TelephonyManager.CALL_STATE_RINGING:
  mIncomingNumber = intent.getStringExtra("incoming_number");
  Log.i(TAG, "RINGING :" + mIncomingNumber);
  break;
  case TelephonyManager.CALL_STATE_OFFHOOK:
  if (mIncomingFlag)
  {
   Log.i(TAG, "incoming ACCEPT :" + mIncomingNumber);
  }
  break;
  case TelephonyManager.CALL_STATE_IDLE:
  if (mIncomingFlag)
  {
   Log.i(TAG, "incoming IDLE");
  }
  break;
  }
 }
 }
}

第二步:在AndroidManifest.xml,配置写好的Receiver,并拦截相应的BroadCastAction,

另外注意加上相应的权限

<receiver android:name=".broadcase.PhoneStateBroadCastReceiver">
   <intent-filter>
    <action android:name="android.intent.action.PHONE_STATE"/>
    <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
   </intent-filter>
 </receiver>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />

PS:这里再为大家提供一个关于AndroidManifest.xml权限控制的在线查询工具:

Android Manifest功能与权限描述大全:
http://tools.jb51.net/table/AndroidManifest

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android短信与电话操作技巧汇总》、《Android操作SQLite数据库技巧总结》、《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

相关文章

  • Android实现桌面悬浮窗、蒙板效果实例代码

    Android实现桌面悬浮窗、蒙板效果实例代码

    这篇文章主要介绍了Android实现桌面悬浮窗、蒙板效果实例代码的相关资料,需要的朋友可以参考下
    2016-05-05
  • Android进阶KOOM线上APM监控全面剖析

    Android进阶KOOM线上APM监控全面剖析

    这篇文章主要为大家介绍了Android进阶KOOM线上APM监控全面剖析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Android实现上传图片功能

    Android实现上传图片功能

    这篇文章主要为大家详细介绍了Android实现上传图片功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 深入浅析Android JSON解析

    深入浅析Android JSON解析

    android中网络数据传输是经常被用到的,通常我们使用xml或者json,而json更加轻量,便捷,我们使用的更多。我自己在项目中使用很多,今天就说说android中怎么去解析JSON,帮助自己总结内容,同时帮助别人少走弯路
    2015-12-12
  • 详解Android中Handler的内部实现原理

    详解Android中Handler的内部实现原理

    这篇文章主要介绍了Android中Handler的内部实现原理,对Handler和消息循环的实现原理进行源码分析,需要的朋友可以参考下
    2015-12-12
  • Android xmlns 的作用及其自定义实例详解

    Android xmlns 的作用及其自定义实例详解

    这篇文章主要介绍了 Android xmlns 的作用及其自定义实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • 安卓(Android)游戏开发音效代码

    安卓(Android)游戏开发音效代码

    本文主要介绍在Android 游戏开发的过程中会用到音效资源,这里对音效的方法做出详解,希望对大家有所帮助
    2016-07-07
  • Android中的windowSoftInputMode属性详解

    Android中的windowSoftInputMode属性详解

    这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
    2014-10-10
  • Android仿微信选择图片和拍照功能

    Android仿微信选择图片和拍照功能

    这篇文章主要为大家详细介绍了Android仿微信选择图片和拍照功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 解析Android应用启动后自动创建桌面快捷方式的实现方法

    解析Android应用启动后自动创建桌面快捷方式的实现方法

    和IOS开发和Windows Phone开发相比,Android是开放的,Android上的开发也相对更加灵活,能够做很多事情。有的朋友会发现,在某些Android应用安装以后,第一次运行,就会在桌面创建快捷方式。这是如何做到的呢
    2013-05-05

最新评论