博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 监听来电和去电状态
阅读量:5077 次
发布时间:2019-06-12

本文共 1528 字,大约阅读时间需要 5 分钟。

要实现监听到打电话和接电话的状态,需要用到广播接受者BroadcastReceiver,其实现代码请参考如下;

一、定义一个类,继承BroadcastReceiver,重写onReceive()方法。

1 package com.example.phonereceiver; 2  3 import android.app.Service; 4 import android.content.BroadcastReceiver; 5 import android.content.Context; 6 import android.content.Intent; 7 import android.telephony.TelephonyManager; 8  9 public class PhoneReceiver extends BroadcastReceiver {10 11     @Override12     public void onReceive(Context context, Intent intent) {13         if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
//去电14 System.out.println("去电");15 } else {
//来电(存在以下三种情况)16 TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);17 switch (tm.getCallState()) {18 case TelephonyManager.CALL_STATE_IDLE:19 System.out.println("挂断");20 break;21 case TelephonyManager.CALL_STATE_OFFHOOK:22 System.out.println("接听");23 break;24 case TelephonyManager.CALL_STATE_RINGING:25 System.out.println("响铃");26 break;27 }28 }29 }30 }

二、在清单文件中注册该广播,并加上相应的权限。

1 
5 6
9 10
11
12 13
17
18
19
20
21
22
23 24 25

 

转载于:https://www.cnblogs.com/zhangping/p/3681043.html

你可能感兴趣的文章
jquery load 和ready的区别
查看>>
2019/5/7学习日记-变量声明(let、const、var)
查看>>
jvm垃圾回收的过程
查看>>
iPad编程
查看>>
C#实现异步GET的方法
查看>>
JQuery层次选择器
查看>>
linux shell 字符串操作(长度,查找,替换)详解
查看>>
[bug]Syntax error, unrecognized expression: input#ctl00$ContentPlaceHolder1$Pager_input
查看>>
C++多线程の8*2重多线程创建方式
查看>>
948. Bag of Tokens
查看>>
Swift - 使用Core Data进行数据持久化存储
查看>>
IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)...
查看>>
Android Application的使用及其生命周期
查看>>
【SVN】Linux下svn搭建配置全过程——初学者轻松上手篇
查看>>
spring ibatis整合
查看>>
光标格式Mac OS X快捷键(2)
查看>>
04Channel 与 ChannelPipeline
查看>>
Java Sax解析xml
查看>>
职业发展思考(二)
查看>>
线程详解
查看>>