欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2024-03-07 11:29:09
本文实例讲述了android监听来电和去电的实现方法。分享给大家供大家参考,具体如下: 要监听android打电话和接电话,只需下面2步骤 第一步,写一个receive...

本文实例讲述了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程序设计有所帮助。