1、继承BroadcastReceiver,监听来去电状态

package com.example.callphonetest.receiver;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 PhoneStatReceiver extends BroadcastReceiver {private static final String TAG = PhoneStatReceiver.class.getSimpleName();private static boolean incomingFlag = false;private static String incoming_number = null;@Overridepublic void onReceive(Context context, Intent intent) {// 如果是拨打电话if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {incomingFlag = false;String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);Log.e(TAG, "call out:" + phoneNumber);} else {// 如果是来电TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);switch (tm.getCallState()) {case TelephonyManager.CALL_STATE_RINGING:incomingFlag = true;// 标识当前是来电incoming_number = intent.getStringExtra("incoming_number");Log.e(TAG, "call in ringing :" + incoming_number);break;case TelephonyManager.CALL_STATE_OFFHOOK:if (incomingFlag) {Log.e(TAG, "call in offhook :" + incoming_number);}break;case TelephonyManager.CALL_STATE_IDLE:if (incomingFlag) {Log.e(TAG, "call in idle :"+incoming_number);}break;}}}
}

2、注册监听广播并注册相应权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.callphonetest"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="8" /><!-- 监听电话状态权限 --><uses-permission android:name="android.permission.READ_PHONE_STATE" ></uses-permission><uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" ></uses-permission><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.example.callphonetest.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><!-- 注册监听广播 --><receiver android:name=".receiver.PhoneStatReceiver" ><intent-filter><action android:name="android.intent.action.PHONE_STATE" /><action android:name="android.intent.action.NEW_OUTGOING_CALL" /></intent-filter></receiver></application></manifest>

Android 监听手机来电和去电相关推荐

  1. android 监听手机电量变化

    今天,简单讲讲如何监听手机电量的变化. 监听电量是不能静态注册的. 后来上网搜索,发现有五个不能静态注册的广播,这里记录一下,免得下次再后知后觉的发现并惊讶于自己的笨拙. 不能静态注册的广播: and ...

  2. android 监听手机开机

    今天,简单讲讲  android 监听手机开机. 需求描述:有些时候,我们需要我们的程序在开机后能自动运行,在系统即将关闭时,能写入一些记录到指定的文件里. 一.开机广播监听: Android系统 ...

  3. Android监听手机网络变化

    Android监听手机网络变化 手机网络状态发生变化会发送广播,利用广播接收者,监听手机网络变化 效果图 注册广播接收者 <?xml version="1.0" encodi ...

  4. Android 监听系统来电获取来电信息

    本文主要介绍了Android监听系统来电,并获取来电信息,在开发app中需要在来电时候,获取来电人的信息并显示出来 首选要注册权限监听来电,然后通过监听到的手机号,来通过接口查询相关的联系人信息 注册 ...

  5. Android监听手机短信

    Android监听手机短信的方法有两种,分别为: 1.接受系统的短信广播:当手机收到新消息时,会发送一条广播,通过该广播就可以获取短信内容: 2.监听短信数据库:利用观察者模式监听短信数据库,当短信数 ...

  6. Android监听手机返回键

    Android在做项目时,有时候点击返回按钮没反应(有冲突),那就需要我们监听返回键.重写onKeyDown()方法: // 监听手机返回键 @Override public boolean onKe ...

  7. Android开发之监听手机来电

    TelephonyManager是一个管理手机通话状态.电话网络信息的服务类,该类提供了大量的getXxx(),方法获取电话网络的相关信息.关于TelephonyManager的详解可以参照:Andr ...

  8. Android 监听手机GPS打开状态

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70854942 本文出自[赵彦军的博客] GPS_Presenter package ...

  9. android 监听手机屏幕唤醒和睡眠广播

    最近做APP要做一个android 手机屏幕唤醒和睡眠的监听. 但发现下面问题: 我想获取调用屏幕打开时应用.在我 AndroidManifest.xml 已经指定:android.intent.ac ...

最新文章

  1. bug诞生记——const_cast引发只读数据区域写违例
  2. 关于学习Python的一点学习总结(58->匹配对象和编组)
  3. UITableView的cell向左滑出有删除,修改等选项
  4. 长沙网络推广浅析如何增加网站的蜘蛛爬取频次?
  5. vscode使用教程python-VsCode使用教程
  6. cocos2d-x游戏开发系列教程-中国象棋02-main函数和欢迎页面
  7. PclZip:强大的PHP压缩与解压缩zip类
  8. oracle查询列属性,Oracle中查看所有的表,列,属性,…
  9. 【愚公系列】2022年01月 Django商城项目16-用户中心-地址管理之省市三联动功能实现
  10. Islands 架构原理和实践
  11. 测试软件的稳定性,客户端稳定性测试
  12. 前端面试 - css , 布局 ,js ,vue
  13. osu计算机科学硕士,OSU的Computer Science and Engineering「俄亥俄州立大学计算机科学与工程系」...
  14. 英语学习——定语和状语
  15. PAT Basic Level 1069 微博转发抽奖 解题思路及AC代码 v1.0
  16. Android中的热修复
  17. Python爬虫大众点评字体加密评论采集!听说这个网站很难?
  18. SPSS Modeler 建模前准备—数据平衡与特征选择(指南 第十一章)
  19. python随机生成10道乘法题_python3 随机生成10以内的加法算术题
  20. 浏览器被毒霸占领这样去掉

热门文章

  1. hotmail收不到邮件_如何将所有电子邮件从Hotmail(或Yahoo!)传输/移动到Gmail
  2. Echarts图表绘制,小白看了不迷路
  3. 软件设计质量(一)容错设计
  4. ln火线零线_LN哪个代表零线哪个代表火线
  5. 车载导航仪的基本机能概要
  6. 全网最细海龟 (turtle) 画图讲解 (四):绘制图形
  7. mysql中如何调整列的顺序,SQL Server 数据库调整表中列的顺序操作
  8. java控件数组_java通过复选框控件数组实现添加多个复选框控件示例分享
  9. Mac 10.12安装飞鸽传书IPMessager
  10. c/c++ 洛谷 P5035 金坷垃