在android中检测拨出电话和呼叫挂断事件

2023-12-21

我有一个要求,其中我想检测与 Android 中的呼叫相关的两种事件

  1. 每当拨打电话时,我的应用程序都应该知道这一点以及被叫号码
  2. 当呼叫挂断时(由于成功/失败),我的应用程序应该了解这一点以及挂断的原因

这在 Android 中可能吗?


您应该创建一个广播接收器:

public class CallReciever extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
                TelephonyManager.EXTRA_STATE_RINGING)) {

                // Phone number 
                String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

                // Ringing state
                // This code will execute when the phone has an incoming call
        } else if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
                TelephonyManager.EXTRA_STATE_IDLE)
                || intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
                        TelephonyManager.EXTRA_STATE_OFFHOOK)) {

            // This code will execute when the call is answered or disconnected
        }

    }
}

您应该注册您的应用程序以侦听清单中的这些意图:

<receiver android:name=".CallReciever" >
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
 </receiver>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android中检测拨出电话和呼叫挂断事件 的相关文章

  • Android主线程的IO操作

    我的问题有两个 是否建议在 Android 的主线程上进行 IO 操作 或者它是否有可能导致我的应用程序崩溃 如果在主线程上执行 IO 操作不理想 我可以使用哪些其他框架 以便当我的应用程序加载时它可以执行一些基本的 IO 文件读取并将值存
  • Android 应用程序安装失败:包 com.my.app 在条目 AndroidManifest.xml 处没有证书

    在 Android Studio 中 我生成了带有密钥库等的签名 APK 将 APK 安装到设备上时失败 并显示 无法安装应用程序 并且在 Android Monitor 中我看到以下行 Package com my app has no
  • 如何从Firebase Firestore实时更新文档中获取修改后的字段或数据? [复制]

    这个问题在这里已经有答案了 我有多个文档 我的问题是我无法获取修改的特定数据 我正在获取完整的文档 db collection employees whereEqualTo OID OID addSnapshotListener new E
  • Android:初始化本机 AudioRecord 对象时 AudioRecord 错误代码 -20

    Android 我想从麦克风读取缓冲区 以便我可以对其执行处理 以下是我的代码 int sampleRateInHz 8000 44100 22050 and 11025 int channelConfig AudioFormat CHAN
  • Android 中的 Fragment-Fragment 通信

    我在Android编程方面处于初级水平 所以我需要你真诚的帮助 请任何人帮助我 我正在尝试使用片段构建滑动用户界面 所以我真正的疑问是 我有一个Fragment say FragmentA 它有一个TextView and Button在其
  • Android 图表[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个项目 其中有一些图表 图形 刻度图 烛台图和范围图 但问题是 没有该图表的库 我有烛台图的
  • socket.io xhr 在连接缓慢时出现错误(3G 移动网络)

    当我在 3G 移动网络 互联网连接速度慢 上测试我的真实聊天应用程序时 Socket io反复断开然后重新连接 我已经记录了原因 它说 xhr post error 这提高了 transport error 然后断开连接 我可以知道什么意思
  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • 如何禁用操作栏上“向上”按钮的翻转?

    背景 我做了一个 应用程序管理器 https play google com store apps details id com lb app manager 替代应用程序 我希望添加 RTL 从右到左 语言的翻译 因为我知道在某些 And
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • Android 中的 OpenGL 缩小

    我正在使用 3D 对象并渲染它并通过扩展 GLSurfaceView 实现渲染器来显示它 问题是如何通过捏合和捏合进行缩小 下面是我的班级 package com example objLoader import java nio Byte
  • 安卓。 CalendarView...一次仅显示一个月的日历

    我正在使用 CalendarView 其中我想一次仅查看一个月的日历并滚动查看下个月 但 CalendarView 一次显示所有月份 下面是我的代码
  • jetpack compose 是否使用drawable-night 文件夹?

    我们有一个基于视图的 Android 应用程序 其中有一些可绘制对象res drawable文件夹 以及夜间模式的对应文件夹res drawable night folder 使用旧视图时 引用可绘制对象R drawable foo从 XM
  • 如何将样式应用于我拥有的所有 TextView? [复制]

    这个问题在这里已经有答案了 可能的重复 设计所有 TextView 或自定义视图 的样式 而不向每个 TextView 添加样式属性 https stackoverflow com questions 6801890 styling all
  • 如何在android中通过蓝牙向配对设备发送短信?

    在我的应用程序中 我想通过蓝牙发送和接收短信 我可以在列表视图中看到配对设备名称和地址的列表 但是当我尝试向配对设备发送文本时 什么也没有发生 在其他设备中没有收到文本 这是我向配对设备发送消息的代码 private void sendDa
  • Android 标记如何实现拖放?

    你好 我正在 Android 中开发 MapView 应用程序 我有三个标记 我希望稍后能够使用 Google Map API getlocation function 为了尝试一下 我想使用拖放功能移动标记 然后检查位置 任何人都可以通过
  • 丢失应用程序的密钥库文件(但已启用 Google Play 应用程序签名)

    我已经失去了原来的keystore用于签署我的应用程序的文件 我的应用启用了 Google Play 应用签名 如果我联系 Google 支持人员 是否可以重置密钥 以便我可以继续上传到此包 我希望我可以做到这一点 因为应用程序签名已启用
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向
  • 从文件路径显示图像视图?

    我需要仅使用文件名而不是资源 ID 来显示图像 ImageView imgView new ImageView this imgView setBackgroundResource R drawable img1 我在可绘制文件夹中有图像
  • 如何访问我的 Android 程序中的联系人

    我正在制作一个短信应用程序 并且想要访问我的 Android 应用程序中的联系人 我想访问联系人 就像他们在实际联系人列表中一样 选择后 我需要返回到我的活动 在其中我可以向该人发送短信 或者是否可以访问存储联系人的数据库 我的代码如下所示

随机推荐

  • 与父实体一起逐出依赖集合

    我刚刚意识到 当一个对象从 Hibernate 缓存中被逐出时 依赖集合 如果被缓存 必须被驱逐分别地 http jaitechwriteups blogspot com 2006 08 evict collection from hibe
  • 如何使用 c#.net 读取 XML 中的 XML 节点

    我有一个如下所示的 XML 文件
  • Vaadin Valo 页面不会滚动

    我正在基于原生 Valo 主题创建一个新的 Vaadin 主题 升级到 Vaadin 7 3 Valo 由其他人完成 后 页面内容将不再滚动 除了整个页面本身之外 页面上应用了溢出属性的所有其他元素都可以正常工作 我知道我可以应用这个 v
  • Netlogo的执行顺序是怎样的?

    请问我这句话正确吗 如果我写 ask turtles go forward go backward 随机一只乌龟向前移动然后向后移动 然后第二只随机乌龟会做同样的事情 依此类推 这是否正确 相对于 ask turtles go forwar
  • 如何在 Firefox 中使用 php curl 发送推送消息

    我已经为 Chrome 实现了推送通知 当我需要向 GCM 发送推送消息时 我使用了以下 PHP 函数 function send push message subscription ids Set GCM endpoint url htt
  • C# .NET 支持 IDispatch 后期绑定吗?

    问题 我的问题是 C 本身支持后期绑定 IDispatch 吗 Pretend我正在尝试自动化 Office 同时与客户安装的任何版本兼容 在 NET 世界中 如果您在安装了 Office 2000 的情况下进行开发 则从现在到世界末日 每
  • 如何在 Gradle 构建中使用为 jar 文件提供的范围?

    我需要在我的应用程序中使用 Amazon Maps 和 Amazon Messaging 使用 gradle 我没有成功添加具有 提供 范围的 Amazon 依赖项正如他们需要的那样 https developer amazon com s
  • Swift 与泛型类型的条件一致性

    我正在尝试使用两种通用类型来使用 Swift 扩展 我试着举个例子 我们有一个盒子 可以容纳不同类型的物品 class Box
  • 求和间隔

    我必须对这样的间隔进行求和 1 6 2 4 The result is 1 6 so there are 6 numbers in the end 这是另一个例子 4 6 8 10 14 16 4 5 6 8 9 10 14 15 16 t
  • Docker 最佳实践:容器的单一进程

    码头工人最佳实践 https docs docker com engine articles dockerfile best practices 指南指出 您应该只在单个容器中运行单个进程 Nginx 和 PHP FPM 应该在单独的容器中
  • 使用 CString 进行 PInvoke

    我正在尝试使用 P Invoke 从 C 调用非托管 C DLL 中的函数 C DLL 使用CString 作为函数参数和返回值 例如 CString AFX EXT API GetUserName CString userID 不幸的是
  • 在初始化中省略重要的复制/移动构造函数是否合法?

    鉴于此应用程序 include
  • Python查找所有出现的连字符单词并替换该位置

    我必须用连字符替换所有出现的模式c c c c come or oh oh oh oh等与最后一个标记即come or oh在此示例中 其中 连字符之间的字符数是任意的 可以是一个或多个字符 要匹配的标记是连字符中的最后一个标记 因此com
  • 在 Dart/Flutter 中反序列化 json 数组

    如何反序列化这个json数组 i 737 n 1 得到变量 i e n 要反序列化的类 class PortasAbertas int i int n PortasAbertas this i this n PortasAbertas fr
  • 不建议在 ES6 中使用“use strict”?

    我还不熟悉 ECMAScript 6 我刚刚克隆了 React Starter Kit 存储库 它使用 ES6 作为应用程序代码 我很惊讶地发现 linter 是配置好的 https github com kriasoft react st
  • 在指令之间共享数据

    我有一些数据称为foo它所在的范围是三个孩子的父级 div div
  • 删除C中链表中每个奇数位置的节点

    我试图在 C 中创建一个函数来删除每个奇数位置的节点 例如1 2 3 4变成2 4 这是我尝试过的 但似乎不起作用 我正在谈论的是deletee功能 我修改了它 但列表似乎没有改变 include
  • Activity.setContentView、View.setContentView?

    我注意到 Activity 类有一个 setContentView 方法 可以在其中加载 xml 资源文件 我想对最终继承自 View 的类做同样的事情 这似乎是一个死胡同 因为 View 类不存在 setContentView 方法 这引
  • 正则表达式 \\s*,\\s* 的作用是什么?

    我想知道这行代码对 surl 字符串中包含的 url 有何作用 String stokens surl split s s 让我们假设这是 surl http myipaddress 8080 Map MapServer html 斯托克斯
  • 在android中检测拨出电话和呼叫挂断事件

    我有一个要求 其中我想检测与 Android 中的呼叫相关的两种事件 每当拨打电话时 我的应用程序都应该知道这一点以及被叫号码 当呼叫挂断时 由于成功 失败 我的应用程序应该了解这一点以及挂断的原因 这在 Android 中可能吗 您应该创