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

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

要监听android打电话和接电话,只需下面2步骤

1.第一步,写一个Receiver继承自BroadcastReceiver

1 import android.app.Service; 2 import android.content.BroadcastReceiver; 3 import android.content.Context; 4 import android.content.Intent; 5 import android.telephony.TelephonyManager; 6 import android.util.Log; 7  8 public class PhoneStateBroadCastReceiver extends BroadcastReceiver 9 {10  private static final String TAG = "PhoneStateBroadCastReceiver";11 12  private static boolean mIncomingFlag = false;13  private static String mIncomingNumber = null;14 15  @Override16  public void onReceive(Context context, Intent intent)17  {18   // 如果是拨打电话19   if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL))20   {21    mIncomingFlag = false;22    String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);23    Log.i(TAG, "call OUT:" + phoneNumber);24   } else25   {26    // 如果是来电27    TelephonyManager tManager =28    (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);29    switch (tManager.getCallState())30    {31    case TelephonyManager.CALL_STATE_RINGING:32     mIncomingNumber = intent.getStringExtra("incoming_number");33     Log.i(TAG, "RINGING :" + mIncomingNumber);34     break;35    case TelephonyManager.CALL_STATE_OFFHOOK:36     if (mIncomingFlag)37     {38      Log.i(TAG, "incoming ACCEPT :" + mIncomingNumber);39     }40     break;41    case TelephonyManager.CALL_STATE_IDLE:42     if (mIncomingFlag)43     {44      Log.i(TAG, "incoming IDLE");45     }46     break;47    }48   }49  }50 51 }

第二步:在AndroidManifest.xml,配置写好的Receiver,并拦截相应的BroadCastAction,

另外注意加上相应的权限

1 
2
3
4
5
6
7
8

 Android监听来电和去电 | 若水工作室 

本文转自欢醉博客园博客,原文链接http://www.cnblogs.com/zhangs1986/p/3243061.html如需转载请自行联系原作者

欢醉

你可能感兴趣的文章
Google Container Engine进军生产环境,容器技术势不可挡
查看>>
听我说说我的博客: 月访问量过万的个人IT博客的技术史
查看>>
数组去重的正确编写姿势
查看>>
Emulator 29.0.3 Canary 发布,Android 模拟器
查看>>
Ruby 3 有望引入静态类型
查看>>
Purism 发布 PureBoot:高度安全、完整的 Linux 引导流程
查看>>
JAVA学习day05
查看>>
gradle仓库配置
查看>>
为私有Kubernetes集群创建LoadBalancer服务
查看>>
Android EditView 第一次点击默认不输入
查看>>
深入理解阿里分布式消息中间件
查看>>
行业观察(一)| 从渠道为王到数据为王——浅谈服装零售企业的数字化转型 ...
查看>>
阿里架构师,讲述分布式架构云平台解决方案(附学习路线) ...
查看>>
Android 访问WebService
查看>>
老生常谈 String、StringBuilder、StringBuffer
查看>>
SpringMVC工作原理
查看>>
Apache Flink 漫谈系列(12) - Time Interval(Time-windowed) JOIN ...
查看>>
puppet 执行source
查看>>
东南亚智能金融决策平台Silot完成A 轮融资,SBI 领投 ...
查看>>
真的有人在偷听我们讲话么?
查看>>