`
stephen830
  • 浏览: 3010254 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android 呼出电话的监听(去电监听)

 
阅读更多

android 呼出电话的监听(去电监听)

 

 

权限:

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />

 

通过接收呼出电话的广播来实现

 

定义广播类

 

package com.zhouzijing.android.demo;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;

public class BroadcastReceiverMgr extends BroadcastReceiver {
	
	private final String TAG = MyBroadcastReceiver.TAG;

	@Override
	public void onReceive(Context context, Intent intent) {
		String action = intent.getAction();
		Log.i(TAG, "[Broadcast]"+action);
		

		
		//呼出电话
		if(action.equals(MyBroadcastReceiver.B_ACTION_NEW_OUTGOING_CALL)){
			String outPhoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
			Log.i(TAG, "[Broadcast]ACTION_NEW_OUTGOING_CALL:"+outPhoneNumber);
			//this.setResultData(null);
//这里可以更改呼出电话号码。如果设置为null,电话就永远不会播出了.
		}
		
		
	}
	
	
}

 定义activity类

package com.zhouzijing.android.demo;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.View;

public class MyBroadcastReceiver extends Activity {
	public final static String TAG = "MyBroadcastReceiver";
	
	
	public final static String B_ACTION_NEW_OUTGOING_CALL = Intent.ACTION_NEW_OUTGOING_CALL;
	
	private BroadcastReceiverMgr mBroadcastReceiver;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.my_broadcast_receiver);
	}
	
	
	
	

	//按钮1-注册广播
	public void registerIt(View v) {
		Log.i(TAG, "registerIt");
		mBroadcastReceiver = new BroadcastReceiverMgr();
		IntentFilter intentFilter = new IntentFilter();
		intentFilter.addAction(Intent.ACTION_NEW_OUTGOING_CALL);
		intentFilter.setPriority(Integer.MAX_VALUE);
		registerReceiver(mBroadcastReceiver, intentFilter);
	}
	
	//按钮2-撤销广播
	public void unregisterIt(View v) {
		Log.i(TAG, "unregisterIt");
		unregisterReceiver(mBroadcastReceiver);
	}
	
}
 

 

分享到:
评论

相关推荐

    Android-Android来去电监听电话挂断

    在Android平台上,来电和去电的监听以及电话挂断的处理是通过系统级别的电话状态监听器(PhoneStateListener)实现的。这个功能涉及到Android的电信服务API,它允许应用程序接收和响应电话事件,如通话开始、结束、...

    Android广播接实现监听电话状态(电话的状态,拦截)

    在Android平台上,对电话状态的监听和拦截是一个需要特别权限和精确实现的敏感操作,这涉及到Android的权限管理、广播接收器(BroadcastReceiver)、事件监听机制以及电话状态的处理。以下知识点将详细介绍如何实现这...

    android拨号键盘及来去电监听

    在Android开发中,拨号键盘和来去电监听是两个重要的功能模块,它们涉及到用户与设备的通信交互。本文将详细解析如何实现这样的功能,并提供相关的编程知识点。 首先,我们来了解一下拨号键盘的实现。在Android系统...

    Android实现监听电话呼叫状态的方法

    总结一下,实现Android监听电话呼叫状态的步骤如下: 1. 在`AndroidManifest.xml`中添加`READ_PHONE_STATE`权限。 2. 获取`TelephonyManager`服务。 3. 创建并实现`PhoneStateListener`,重写`onCallStateChanged`...

    android 利用重力感应监听

    下面将详细介绍如何在Android中利用重力感应监听以及相关的知识点。 首先,Android系统提供了SensorManager服务,它是与设备的各种传感器进行交互的接口。要使用重力感应器,我们需要获取SensorManager实例,并注册...

    Android开发通过BroadcastReceiver监听Home,电源Power,和音量变化Volume键

    在Android开发中,有时我们需要对用户的操作进行监听,比如用户按下Home键、电源键或音量键等。本文将详细讲解如何使用BroadcastReceiver来监听这些关键事件,并介绍相关的Android基础知识。 首先,...

    各种Android Dialog创建及其监听事件实现

    在Android开发中 我们经常会需要在Android界面上弹出一些对话框 比如询问用户或者让用户选择 关于Android Dialog的使用方法 已经有很多blog做出了详细的介绍(比如博客:7种形式的Android Dialog使用举例) 但是只是...

    Android实现信号强度监听的方法

    在Android系统中,监听手机的信号强度是一项关键任务,尤其对于开发者来说,它可以帮助优化应用性能,提升用户体验。本篇文章将详细介绍如何在Android平台上实现对信号强度的实时监听。 首先,我们需要了解Android...

    Android中的webview监听每次URL变化实例

    本文档将详细讲解如何在Android的WebView中监听URL的变化以及如何监听页面加载的完成情况。 首先,要监听WebView中URL的变化,可以通过设置自定义的WebViewClient,并重写onLoadResource方法。当WebView开始加载新...

    Android 实时监测(监听)网络连接状态变化

    android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么...

    Android中监听电话状态.zip

    在Android系统中,监听电话状态是一项重要的功能,它允许开发者获取到电话的实时信息,比如来电、去电、通话结束等事件。这项功能通常应用于电话录音、来电管理、短信拦截等场景。本教程将深入探讨如何在Android应用...

    Android在Fragment中实现监听触摸事件

    "Android在Fragment中实现监听触摸事件" Android在Fragment中实现监听触摸事件是指在Android应用程序中,如何在Fragment中监听触摸事件。Fragment是Android应用程序中的一个组件,它可以在Activity中使用,但是它并...

    Android 电话及短信的监听程序源码.zip

    对于电话监听,需要`&lt;uses-permission android:name="android.permission.READ_PHONE_STATE" /&gt;`来获取电话状态,如来电、去电和通话状态。而监听短信则需要`&lt;uses-permission android:name="android.permission....

    Android数据库内容变化的监听

    Android 数据库内容变化的监听 Android 数据库内容变化的监听是 Android 系统中一种重要的机制,用于监听数据库中的内容变化。这种机制基于 Uri 的内容监测,通过 ContentResolver 类提供了三个方法来实现监听功能...

    Android监听自身卸载,弹出用户反馈调查

    "Android 监听自身卸载,弹出用户反馈调查" Android 监听自身卸载,弹出用户反馈调查是一个非常实用的功能,特别是在当前的移动应用市场中。这个功能可以让开发者在用户卸载应用时,弹出一个用户反馈调查的网页,...

    android键盘弹出/收起监听demo

    在Android开发中,有时我们需要对软键盘的弹出和收起事件进行监听,例如在聊天应用或者表单填写页面,确保布局随着键盘的显示和隐藏做出相应的调整。本示例"android键盘弹出/收起监听demo"提供了一个实用的方法来...

    Android Webview滑动监听

    本篇将详细讲解如何在Android Webview中实现滑动监听以及图片的放大缩小功能。 首先,我们要了解`WebView`的基本用法。在Android Studio中,创建一个新的布局XML文件,添加`WebView`组件: ```xml android:id="@...

    android监听手机app启动

    标题"android监听手机app启动"所指的就是这一功能,即在Android程序中捕获其他应用程序的启动事件。描述中提到,API 20之前和之后的方法有所不同,因为Android系统在不同版本中对权限和隐私保护进行了调整。 在API ...

    android监听软键盘状态

    本篇文章将深入探讨如何在Android中监听软键盘的状态。 首先,我们需要了解Android系统中的软键盘是如何工作的。当用户在EditText等输入框中点击时,系统会自动弹出软键盘。然而,Android SDK并没有提供直接的方法...

Global site tag (gtag.js) - Google Analytics