Android广播接实现电话的监听

1:需要在AndroidManifest.xml清单中添加权限

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

2:注册广播 要注意事件的级别 (android中的级别-1000~1000)

<receiver android:name=".PhoneBroadcastReceiver">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>

详细配置请看 AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.zyw.broadcastsendsms"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="15" /><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".SendSMS"android:label="@string/title_activity_send_sms" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><receiver android:name=".PhoneBroadcastReceiver"><intent-filter android:priority="1000"><action android:name="android.intent.action.NEW_OUTGOING_CALL"/><action android:name="android.intent.action.PHONE_STATE"/>   </intent-filter></receiver></application><uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/><uses-permission android:name="android.permission.READ_PHONE_STATE" />
</manifest>

3:编写广播的实现类 这里需要继承BroadcastReceiver 实现onReceive()方法

程序的源代码如下:

package com.zyw.broadcastsendsms;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 PhoneBroadcastReceiver extends BroadcastReceiver {private static final String TAG = "message";private static boolean mIncomingFlag = false;private static String mIncomingNumber = null;@Overridepublic 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;}}}/*@Overridepublic void onReceive(Context context, Intent intent) {String number = getResultData();if("5556".equals(number)){setResultData(null);//挂断}else{number = "12593"+ number; //其他,则加区号setResultData(number);}}*/
}

Android广播接实现电话的监听(电话的状态,拦截)相关推荐

  1. Android 监听来去电状态的实现

    本文授权发布公众号[刘桂林],星球[Hi Android] 在Android中我们想要实现监听电话状态一般都会通过TelephonyManager来监听,他提供了一个PhoneStateListene ...

  2. android 2.1 监听电话状态并自动接听来电

    一.开发环境       Elispse5.5,JDK1.6,Aadroid 2.1 二.开发中使用到的重点技术点:       距离感应(SENSOR_SERVICE ),音讯管理(AUDIO_SE ...

  3. android监听卡1电话,Android 监听 SIM 卡状态

    判断是否包含 SIM 卡 /** * 判断是否包含SIM卡 * * @return 状态 */ public static boolean hasSimCard(Context context) { ...

  4. android 拨打电话、 监听来电、监听呼出电话的功能实现

    demo1(通用): 权限 <!-- 监听呼出电话 --> <uses-permission android:name="android.permission.PROCES ...

  5. 监听电话状态并自动接听来电

    在完成全部功能之前,我查询了很多资料,用了一个星期的时间终于陆陆续续的将这些功能全部完成了,为了众多和我一样的菜鸟少走一点弯路,我决定将它贴出来和大家一起分享,仔细一看距上次更新博客已经有半年了 . ...

  6. Android实现来电和去电的监听

    写个实例实现Android中来电和去电的监听,来电可以使用PhoneStateListener对电话状态的改变进行监听,去电需要动态或者静态去注册广播接收器,对去电进行监听: 来电: 来电所对应的三种 ...

  7. Android 监听网络连接状态,判断网络连接方式,9.0网络连接,获取已连接WiFi名称SSID和MAC

    获取已连接的WiFi名称 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> ...

  8. Android事件的响应,Android 开发事件响应之基于监听的事件响应

    Android 开发事件响应之基于监听的事件响应 本文将介绍Android 操作系统如何通过监听来实现对事件的响应. Android 开发事件响应之基于监听的事件响应 背景介绍 Android 开发事 ...

  9. Android 监听 WiFi 开关状态

    Android 监听 WiFi 开关状态 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70854309 本文出自[赵彦军的博客] ...

最新文章

  1. 被法拉第夸、狄更斯为她读诗、英王参加她的成人礼,程序员祖师的人生有多传奇?...
  2. oracle数据库查看等待,Oracle常见等待事件说明(三)-enqueue/free buffer waits
  3. layer output 激活函数_一文彻底搞懂BP算法:原理推导+数据演示+项目实战(下篇)...
  4. mysql当数据改变时_当数据库里面的价格变化时,发送信息到企业微信中
  5. vuecli3 引入全局scss变量_vue-vue-cli3 sass全局变量配置
  6. 工作70:验证放在直接父级
  7. 卡尔曼滤波原理(二):扩展卡尔曼
  8. 你绝对猜不到 Java 14 有什么新特性?
  9. Unity 工具之 UniWebView 内嵌网页/浏览器到应用中,并且根据UGUI大小放置(简单适配UGUI)
  10. workbench焊接实例_基于ANSYS Workbench平台和ANSYS经典界面的焊接仿真-工业电子-与非网...
  11. THREE.JS 导入STL格式的模型
  12. 图像处理中的二阶矩矩阵(结构张量)
  13. MacOS 制作 Linux U盘启动盘
  14. Word文档的两种密码忘记了,怎么办?
  15. selenium碰到 href = ‘/‘ 这样的一个链接怎么办
  16. Mac通过命令行搜索文件
  17. Excel怎么快速提取出网址
  18. Python小白自问自答
  19. 达梦数据库使用小记录【关于 无效的列】
  20. 修改html文件500错误信息,打开网页提示 HTTP500错误的终极解决方法

热门文章

  1. Ubuntu的中文是哪种字体?python的词云分析和 三国演义人物出场统计
  2. Qt控件大小自适应电脑分辨率问题
  3. C++ STL 容器之queue
  4. UVA - 12096:The SetStack Computer
  5. 1017. A除以B (20)
  6. HTML如何添加锚点,我先收藏为敬
  7. 算法题+JVM+自定义View,终局之战
  8. Hibernate学习笔记(一)
  9. leetcode 214 Shortest Palindrome
  10. 深入理解ES6 pdf