当前位置: 首页 > 编程日记 > 正文

android-轻松监听来电和去电

要监听android打电话和接电话,只需下面2步骤
  1.第一步,写一个Receiver继承自BroadcastReceiver

  public class PhoneStatReceiver extends BroadcastReceiver{private static final String TAG = "PhoneStatReceiver";//        private static MyPhoneStateListener phoneListener = new MyPhoneStateListener();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.i(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.i(TAG, "RINGING :"+ incoming_number);break;case TelephonyManager.CALL_STATE_OFFHOOK:if(incomingFlag){Log.i(TAG, "incoming ACCEPT :"+ incoming_number);}break;case TelephonyManager.CALL_STATE_IDLE:if(incomingFlag){Log.i(TAG, "incoming IDLE");}break;}}}} 

第二步:在AndroidManifest.xml,配置写好的Receiver,并拦截相应的BroadCastAction,
  另外注意加上相应的权限。

 <receiver android:name=".filter.PhoneStatReceiver"><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><uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission>

相关文章:

【sql】实现分页查询

分页查询&#xff0c;以五条五条查询为例&#xff1a; 代码实现&#xff1a; select * from goods_list LIMIT 0 , 5; 从第0条开始&#xff0c;查询五条

N-Case 律师事务所管理系统安装与卸载说明

目 录 1 解压安装包... 1 2 安装系统... 1 3 登录系统... 2 4 安装失败... 3 5 系统试用帐号... 3 6 远程访问... 3 7 卸载系统... 3 1 解压安装包 先解压软件包&#xff0c;解压后把redcat目录剪切或拷贝到D盘根目录下即可。一定要放到D…

jmeter分析性能报告时的误区

概述 我们用jmeter做性能测试&#xff0c;必然需要学会分析测试报告。但是初学者常常因为对概念的不清晰&#xff0c;最后被测试报告带到沟里去。 常见的误区 分析响应时间全用平均值响应时间不和吞吐量挂钩响应时间和吞吐量不和成功率挂钩。。。。。 平均值特别不靠谱 平均值为…

const的位置

2019独角兽企业重金招聘Python工程师标准>>> 1.指向常量的指针 const 类型 * 指针名 或者 类型 const * 指针名特点&#xff1a;不能修改指向的对象的值,可以修改指针的指向int var11; const int var22; const int * p1&var1; const int * p2&var2; *p1100;…

zookeeper入门系列 : 分布式事务

上一章我们了解了zookeeper到底是什么&#xff0c;这一章重点来看zookeeper当初到底面临什么问题&#xff1f;而zookeeper又是如何解决这些问题的&#xff1f; 实际上zookeeper主要就是解决分布式环境下的一致性问题。那么解决这个问题到底有哪些难点呢&#xff1f;我们一步一步…

rdlc报表显示条码 .

1.条码的生成&#xff1a; private Bitmap GetCode39(string strSource) { int x 5; //左邊界 int y 0; //上邊界 int WidLength 2; //粗BarCode長度 int NarrowLength 1; //細BarCode長度 …

python列表(数组)

python列表&#xff08;数组&#xff09; 列表&#xff08;list&#xff09; 就是 数组 - 列表是Python中的一个对象 - 对象&#xff08;object&#xff09;就是内存中专门用来存储数据的一块区域 - 之前我们学习的对象&#xff0c;像数值&#xff0c;它只能保存一…

【js】common.jsp的使用

通过将引入common.jsp将所有文件都需要的内容或静态资源引入&#xff0c;相当于一个页面&#xff0c;在页面被编译之前合并。 代码实现 <% include file "common.jsp的相对路径"%> 注意&#xff1a; <% page language"java" contentType&quo…

12th,Jan 研究生创新项目申报成功

今天的好消息是研究生创新项目申报成了&#xff0c;省里拨下来是1.8k&#xff0c;本来学校应该配3.6k&#xff0c;但是按照以往的经验&#xff0c;学校那3.6k是不会给的。。。所以总共就1.8k&#xff0c;呵呵&#xff0c;钱虽然不多&#xff0c;但是也是个小小小的成就吧。 昨晚…

Android studio中2种build.gradle文件介绍

根目录下的build.gradle通常不需要修改这个文件中的内容&#xff0c;除非需要添加一些全局的项目构建配置 buildscript {repositories {google() //声明代码托管仓库Googlejcenter() //声明代码托管仓库&#xff0c;用于引用jcenter上的开源项目}dependencies {classpath …

10个有趣的javascript和css库(2019年5月最新)

我们的使命是让您了解最新和最酷的Web开发趋势。这就是为什么我们每个月都会发布一些精选的资源&#xff0c;这些资源是我们偶然发现并认为值得您关注的。 1.Tessaract.js 强大的javascript&#xff08;节点和浏览器&#xff09;库&#xff0c;用于从图像中提取文本。它能自动检…

快速开发rails、==常用插件==

1、简化css编写的&#xff1a;sass http://sass-lang.com/download.html 2、简化html编写的:haml http://haml-lang.com/转载于:https://www.cnblogs.com/klobohyz/archive/2011/10/31/2230080.html

【js】绑定事件的两种方法

方法一&#xff1a; 为需要绑定事件的标签添加一个属性onclick 代码实现&#xff1a; <input type"button" value"测试按钮" onclick"testClick()" /> 方法二&#xff1a; 用jquery方法绑定事件 代码实现&#xff1a; <input id&…

对于学习方式的一些思考

再牛X的书都不要太当回事儿&#xff0c;书只是知识的一个载体&#xff0c;掌握知识的途径之一。学习的过程应该是由一个个知识模块所驱动的&#xff0c;继而去调动身边的学习资源和工具&#xff0c;而不是被一本本所谓的牛书生拉硬拽着去学一大套可能永远都用不到的东西。“知识…

python开发环境安装

PyCharm的安装地址&#xff1a;http://www.jetbrains.com/pycharm/download/#sectionwindows&#xff0c;免费的可以选择社区版本 Python解释器的安装地址&#xff1a;https://www.python.org/downloads/&#xff0c;选择对应的平台及版本下载&#xff0c;安装时勾选 添加到环…

HGOI 20190709 题解

Problem A 紫色激情 一个序列$\{a_n\}$&#xff0c;求出方差最大的子序列。 其中方差 [l,r] 的定义是$S^2 \frac{1}{n} \sum\limits_{il}^{r} (x_i-\bar{x})^2$ 对于100%的数据满足$n \leq 10^3$ Sol : 直接推一波公式就可以前缀和优化了。 ${ S_{l,r} }^2 -\bar{x}^2 \frac{…

C++标准库简介(转)

C标准库的所有头文件都没有扩展名。C标准库的内容总共在50个标准头文件中定义&#xff0c;其中18个提供了C库的功能。 <cname>形式的标准头文件【 <complex>例外】其内容与ISO标准C包含的name.h头文件相同&#xff0c;但容纳了C扩展的功能。在 <cname>形式标…

【jquery】$.each的使用方法

代码实现&#xff1a; $.each(goodsArray, function(index){if(goods.barCode goodsArray[index].barCode){goodsArray[index].count;boo true;return; }});

MyEclipse插件安装

一、安装方法&#xff1a; 方法一、如果可以上网可在线安装 1. 打开Myeclipse&#xff0c;在菜单栏中选择Help→Software Updates→Find and Install; 2. 选择Search for new features to install&#xff0c;点击Next进入下一步; 3. 点击"New Remote Site"按钮&…

软件质量与测试 第4周小组作业

一、项目地址 https://github.com/changjiang666/WcPro 二、PSP 三、设计思路 我负责main函数的编写和print输出模块的编写。 1.main函数 int main(/*int argc, char **argv*/) {char *textBuf readfile("test.txt"); // 读取输入文件WcPro wcpro(textBuf);// 将输入…

UVA 10714 - Ants

这道题是要我们找出所有蚂蚁中最靠近端点和最靠近中间的蚂蚁所在的位置&#xff0c;计算端点的蚂蚁爬到另一个 端点的时间和计算靠近中间的蚂蚁爬到离他近的端点的时间。我们只需分输入的位置在棒的左边还是右边 来讨论就行。 #include<iostream>using namespace std;int…

Mysql Cluster 集群 windows版本

VM1&#xff1a;192.168.220.102 管理节点(MGM) VM2&#xff1a;192.168.220.103 数据节点(NDBD1)&#xff0c;SQL节点(SQL1) VM3&#xff1a;192.168.220.104 数据节点(NDBD2)&#xff0c;SQL节点(SQL2) MySQL Cluster版本&#xff1a;7.4.6 (MSI Installer) 下载地址&…

【js】通过js代码改变html表单中的数据

代码实现&#xff1a; document.getElementById("sum").innerHTML sum;

Asp.net MVC 3实例学习之ExtShop(五)——产品详细页

在产品详细页需要使用到tab控件&#xff0c;在jquery的ui包已包含改控件&#xff0c;因而将相应文件链接加到母版页就可以了。 打开“ProductController”文件&#xff0c;在里面添加一个Details操作&#xff0c;代码如下&#xff1a; 1 public ActionResu…

linux安装配置postgres及使用dblink

好久不写东西&#xff0c;一直在看些开源的东西&#xff0c;下面贴下linux上安装配置postgres及使用dblink的操作参考&#xff0c;以供读者和自己今后参考&#xff1a; 1、下载源码&#xff1a;postgresql-9.3.2.tar.gz 2、创建postgres cluster组和用户&#xff1a; groupadd …

从瀑布模型、极限编程到敏捷开发

从瀑布模型、极限编程到敏捷开发---软件开发管理者思维的变化Jack zhai软件开发是一种对人类智慧的管理&#xff0c;对人大脑思维的“工厂化”管理。人是有感情的、有情绪的、变化的、相对独立的工作单元&#xff0c;这与冰冷的机器是不可比的&#xff0c;所以在中国的历史上&a…

递归和循环:跳台阶和变态跳台阶和矩形覆盖

题目描述 跳台阶:一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法&#xff08;先后次序不同算不同的结果&#xff09;。变态跳台阶:一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级……它也可以跳上n级。求该青蛙跳上…

【js】将json类型的数组或对象转为字符串

代码实现&#xff1a; JSON.stringify(goodsList); 注&#xff1a;该用法多用于数据的传输&#xff0c;如页面于servlet的数据传输不能使用gson的数组直接传输&#xff0c;使用该方法便可解决问题。

Android XML pull 解析器

Android 并未提供对 Java StAX API 的支持。但是&#xff0c;Android 确实附带了一个 pull 解析器&#xff0c;其工作方式类似于 StAX。它允许您的应用程序代码从解析器中获取事件&#xff0c;这与 SAX 解析器自动将事件推入处理程序相反。清单 10 显示了提要解析接口的一个 pu…

Zepto.js库touch模块代码解析

Zepto.js也许并不陌生&#xff0c;专门针对移动端开发&#xff0c;Zepto有一些基本的触摸事件可以用来做触摸屏交互&#xff08;tap事件、swipe事件&#xff09;&#xff0c;Zepto是不支持IE浏览器的。 下面来解析一些Zepto.js触摸事件的解析&#xff1a; 1.触摸事件离不开:tou…