欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Android监听来电和去电的实现方法

时间:2021-05-03 10:00:25|栏目:Android代码|点击:

本文实例讲述了Android监听来电和去电的实现方法。分享给大家供大家参考,具体如下:

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

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

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 PhoneStateBroadCastReceiver extends BroadcastReceiver
{
 private static final String TAG = "PhoneStateBroadCastReceiver";
 private static boolean mIncomingFlag = false;
 private static String mIncomingNumber = null;
 @Override
 public void onReceive(Context context, Intent intent)
 {
 // 如果是拨打电话
 if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL))
 {
  mIncomingFlag = false;
  String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
  Log.i(TAG, "call OUT:" + phoneNumber);
 } else
 {
  // 如果是来电
  TelephonyManager tManager =
  (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
  switch (tManager.getCallState())
  {
  case TelephonyManager.CALL_STATE_RINGING:
  mIncomingNumber = intent.getStringExtra("incoming_number");
  Log.i(TAG, "RINGING :" + mIncomingNumber);
  break;
  case TelephonyManager.CALL_STATE_OFFHOOK:
  if (mIncomingFlag)
  {
   Log.i(TAG, "incoming ACCEPT :" + mIncomingNumber);
  }
  break;
  case TelephonyManager.CALL_STATE_IDLE:
  if (mIncomingFlag)
  {
   Log.i(TAG, "incoming IDLE");
  }
  break;
  }
 }
 }
}

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

另外注意加上相应的权限

<receiver android:name=".broadcase.PhoneStateBroadCastReceiver">
   <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 android:name="android.permission.PROCESS_OUTGOING_CALLS" />

PS:这里再为大家提供一个关于AndroidManifest.xml权限控制的在线查询工具:

Android Manifest功能与权限描述大全:
http://tools.jb51.net/table/AndroidManifest

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android短信与电话操作技巧汇总》、《Android操作SQLite数据库技巧总结》、《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

上一篇:android studio xml文件实现添加注释

栏    目:Android代码

下一篇:Android属性动画实现炫酷的登录界面

本文标题:Android监听来电和去电的实现方法

本文地址:http://www.codeinn.net/misctech/113631.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有