android 拨打电话、 监听来电、监听呼出电话的功能实现

news/2024/11/14 19:48:58/

demo1(通用):

权限

<!--    监听呼出电话  -->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<!--    监听来电    -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--    拨打电话    -->
<uses-permission android:name="android.permission.CALL_PHONE" />

注册:

<receiver android:name=".PhoneReceiver"><intent-filter android:priority="1000"><action android:name="android.intent.action.NEW_OUTGOING_CALL" /><action android:name="android.intent.action.PHONE_STATE" /></intent-filter>
</receiver>

声明:

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 PhoneReceiver extends BroadcastReceiver {private static final String TAG = PhoneReceiver.class.getSimpleName();@Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {// 如果是拨打电话String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);String outNumber = this.getResultData();// 去电号码Log.i(TAG, "call OUT 1:" + phoneNumber);Log.i(TAG, "call OUT 2:" + outNumber);} else if ("android.intent.action.PHONE_STATE".equals(intent.getAction())) {// 如果是来电TelephonyManager tManager = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);// 来电号码String mIncomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);Log.i(TAG, "call IN 1:" + state);Log.i(TAG, "call IN 2:" + mIncomingNumber);switch (tManager.getCallState()) {case TelephonyManager.CALL_STATE_RINGING:Log.d(TAG, "**********************监测到电话呼入!!!!*****");break;case TelephonyManager.CALL_STATE_OFFHOOK:Log.d(TAG, "**********************监测到接听电话!!!!************");break;case TelephonyManager.CALL_STATE_IDLE:Log.d(TAG, "**********************监测到挂断电话!!!!*******************");break;}}}
}

demo2 :


//1.获取telephone的实例
TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
//2.注册电话的监听
tm.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);
private class MyPhoneStateListener extends PhoneStateListener {@Overridepublic void onCallStateChanged(int state, String phoneNumber) {super.onCallStateChanged(state, phoneNumber);switch (state) {case TelephonyManager.CALL_STATE_IDLE:Log.d(TAG, "**********************监测到挂断电话!!!!*******************");break;case TelephonyManager.CALL_STATE_OFFHOOK://接听状态Log.d(TAG, "**********************监测到接听电话!!!!************");break;case TelephonyManager.CALL_STATE_RINGING://电话响铃状态Log.d(TAG, "**********************监测到电话呼入!!!!*****");break;default:break;}}
}

http://www.ppmy.cn/news/271061.html

相关文章

AutoAnswer使用指南(QQ、微信自动接听)

软件下载地址&#xff1a;https://pan.baidu.com/s/19fX1NRup7v0bhtq9WSON8A BUG反馈&#xff1a; QQ群&#xff1a;563152032 --------------------------------------------------------------- 如果安装的是 1.3.6738.R之前的版本&#xff0c;要先卸载旧的版本再安装新版…

android 来电自动接听和自动挂断

转自&#xff1a;http://stephen830.iteye.com/blog/1181786 //-----------------------------------------------------------------------------------------------------------------------------------// android 来电自动接听和自动挂断 注意&#xff1a;android2.3版本不…

android 通话状态监听(自定义接听挂断按钮与通话界面,根据公司的业务逻辑可以实现自己的来电秀功能)...

前言&#xff1a; 因为公司需求&#xff0c;要自定义一款来电秀的app当做周边产品来配合主营的app业务。 之前因为赶项目&#xff0c;没时间整理这块&#xff0c;现在项目告一段落了&#xff0c;现在回头看看感觉这个功能还是挺有意思的&#xff0c;比较有针对性。电话呼入或者…

无人值守安装

自动化安装Linux 一、PXE1.1PXE概念1.2协议分类1.3 优点1.4 批量安装的前置条件1.5 PXE实现的过程详解 二、配置PXE远程安装服务器2.1 思路2.2 配置步骤2.3 配置应答文件总结&#xff1a; 引言&#xff1a; 学会自动安装&#xff0c;安逸的很 一、PXE 1.1PXE概念 PXE 是由 In…

出租车不需要司机了?带你体验无人驾驶出租车!|『智能产品家』第三期

消费者真的了解什么是自动驾驶吗&#xff1f; 不同级别的自动驾驶汽车有什么区别&#xff1f; 自动驾驶系统开发商及汽车制造商真正了解消费者的现实需要吗&#xff1f; 正是这一系列的问题&#xff0c;促使自动驾驶标准制定组织SAE与上海国际汽车城、联合中智行和Velodyne Lid…

电话来电,接听解读

OutgoingCallBroadcaster将在往外拨打电话时被调用&#xff0c;当然执行其onCreate()方法 首先&#xff1a; mPhone PhoneApp.getInstance().phone; Intent intent getIntent(); if (LOGV) Log.v(TAG, "onResume: Got intent " intent "."); S…

无人驾驶入门1:无人驾驶概览

最近给大家分享了《百度Apollo无人驾驶入门课程下载》&#xff0c;我也学习了一些&#xff0c;把我做的笔记分享给大家。 第一课&#xff1a;无人驾驶概览 课程主要介绍了无人驾驶车的关键部分以及Apollo的架构&#xff0c;带大家入门无人驾驶技术。 1.欢迎学习Apollo课程 …

Android拨打、接听、挂断电话操作

Android2.3之前的系统可以通过反射机制调用ITelephone的方法来挂断电话&#xff0c;因为Android2.3以后增加了对permission android.permission.MODIFY_PHONE_STATE 的限制&#xff0c;之前的反射的方法不能用了&#xff0c;我们可以通过发送广播的方式来接听电话。 示例代码…