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. Android设备的网络抓包
  2. 4到20ma模拟量转换公式_西门子 S7-1200 模拟量转换
  3. [Windows驱动开发](一)序言
  4. 东芝硬盘插入台式机后滴滴响
  5. 转usb驱动cmw500 ni_支持USB Type-C接口的外置蓝光驱动器IO Data BRP-UT6 / MC2本月发售...
  6. Super-palindrome【字符串+思维】
  7. mvp内粗泄露问题_如何在一天内从MVP转到生产服务器
  8. MongoDB 副本集的相关概念【转】
  9. 软件测试职业比赛,我院首届软件测试职业技能大赛圆满落幕
  10. 【批处理bat】注释一段文本/字符串
  11. u盘分区变为raw,提示使用前需要将其格式化
  12. pdf转换器注册码及pdf转换器使用步骤
  13. 创业 VS 阿里 | 当梦想遭遇现实,如何抉择?
  14. 关于近段时间学习历史的点滴记录
  15. Conflicted Confucians
  16. 炸弹模拟器 1.0版 彩色
  17. 都2021年了不会还有人用门禁卡吧!(手把手教你用手机代替门禁卡)
  18. python利用datetime库实现通过身份证号码判断年龄、男女,并输出生日
  19. 阐明量子力学到底为何物?
  20. 接口报错500是什么意思_网页打开显示错误500是什么意思

热门文章

  1. OpenGL-入门-Learn-OpenGL [翻译]
  2. 进程地址空间 - 地址空间布局
  3. hyper-v安装android
  4. 计算机无法找到实达打印机,无法安装打印机
  5. 关于取模运算(mod)和求余(rem)运算
  6. c#四种线程安全的懒加载单例模式(Lazy、静态内部类、CAS、双重校验)
  7. 【研究生】AAAI2019评审惹争议!“好论文”遭退稿?程序主席回应
  8. MyEclipse 2014配置Android SDK
  9. AVS+.H264压制视频
  10. vs2019推送项目上自己的github账户报错