源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-08-04 15:54 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android监听来电和去电的实现方法
本文实例讲述了Android监听来电和去电的实现方法。分享给大家供大家参考,具体如下: 要监听android打电话和接电话,只需下面2步骤 [b]第一步,写一个Receiver继承自BroadcastReceiver[/b]
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;
  }
 }
 }
}

[b]第二步:在AndroidManifest.xml,配置写好的Receiver,并拦截相应的BroadCastAction,[/b] 另外注意加上相应的权限
<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" />

[b]PS:这里再为大家提供一个关于AndroidManifest.xml权限控制的在线查询工具:[/b] [b]Android Manifest功能与权限描述大全: [/b][url=http://tools.jb51.net/table/AndroidManifest]http://tools.jb51.net/table/AndroidManifest[/url] 更多关于Android相关内容感兴趣的读者可查看本站专题:《[url=http://www.1sucai.cn/Special/394.htm]Android短信与电话操作技巧汇总[/url]》、《[url=http://www.1sucai.cn/Special/848.htm]Android操作SQLite数据库技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/410.htm]Android开发入门与进阶教程[/url]》、《[url=http://www.1sucai.cn/Special/398.htm]Android多媒体操作技巧汇总(音频,视频,录音等)[/url]》、《[url=http://www.1sucai.cn/Special/381.htm]Android基本组件用法总结[/url]》、《[url=http://www.1sucai.cn/Special/375.htm]Android视图View技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/371.htm]Android布局layout技巧总结[/url]》及《[url=http://www.1sucai.cn/Special/124.htm]Android控件用法总结[/url]》 希望本文所述对大家Android程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部