在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中检测拨出电话和呼叫挂断事件 的相关文章

随机推荐

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

    我刚刚意识到 当一个对象从 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 中可能吗 您应该创