如何拦截CallKit来电屏幕发送的“消息”?

2023-11-23

我正在使用 iOS 10 的 CallKit 来接听来电。我的应用程序中的呼叫不是来自“电话号码”或“电子邮件地址”,而是来自我的协议中的内部标识符。因此,我报告来电CXHandleType of CXHandleTypeGeneric(并不是CXHandleTypePhoneNumber or CXHandleTypeEmailAddress),使用自定义字符串作为句柄的“值”。

当我报告来电且手机未锁定时,用户会看到一个来电屏幕,其中包含“提醒我”、“消息”、“拒绝”和“接受”按钮。如果用户按下“消息”按钮,并选择以下菜单上的消息字符串之一,它会尝试通过“消息”应用程序将该字符串作为文本消息发送,目标是我用作“值”的自定义字符串。 ” 的呼叫句柄,就好像它是电话号码或电子邮件地址,即使它不是。这通常会导致消息由于目标无效而无法发送,但是,根据字符串,它实际上可能发送到用户不想发送到的有效目标;两种结果都是不好的。

我想看看是否有一种方法可以让消息不通过消息应用程序发送(在我的情况下这总是不正确的),而是传递到我的应用程序中,以便我可以通过我的应用程序正确地将消息发送给调用者内部协议。


Update:iOS 10.1 上不再出现“提醒我”和“消息”按钮


如果iOS 12支持SiriKit,则会出现“消息”按钮。 (添加INSendMessageIntent到意图的 info.plist)

如何拦截:

  1. 运行意图扩展
  2. 处理handler(for intent:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何拦截CallKit来电屏幕发送的“消息”? 的相关文章

随机推荐

  • Angular 5 中的 RequestOptions 已弃用符号错误

    我正在尝试将 Angular 4 中的代码调整为 Angular 5 我做了很多更改 但有一个错误RequestOptions 该代码是关于身份验证的 这就是我遇到错误的地方 import Injectable from angular c
  • 使用反应钩子从父组件触发子函数

    我在父组件中有一些操作按钮 单击此类按钮之一时 我想触发子组件中的一个功能 目前 我正在尝试使用 useRef 钩子来实现它 但该解决方案似乎很乏味 并且还给了我警告 我当前的代码如下所示 import React useContext u
  • iostream线程安全,cout和cerr必须单独加锁吗?

    我知道 为了避免输出混合 多个线程对 cout 和 cerr 的访问必须同步 在同时使用 cout 和 cerr 的程序中 单独锁定它们是否足够 或者同时写入 cout 和 cerr 仍然不安全 编辑澄清 我知道 cout 和 cerr 在
  • Django 抽象模型与常规继承

    除了语法之外 使用 django 抽象模型和使用 django 模型的普通 Python 继承有什么区别 优点和缺点 更新 我认为我的问题被误解了 我收到了关于抽象模型和继承自 django db models Model 的类之间差异的回
  • C# dotnet core 2 将数据从中间件/过滤器传递到控制器方法

    目前我们正在使用 dotnet core 2 编写一个 Web 应用程序 我们实际上创建了某种多托管平台 可以根据传递到应用程序的 URL 注册新客户端 然而目前我们想要创建一个中间件 过滤器来验证我们的客户端 实际上我们想要做的是从数据库
  • Where 子句应用于多种模式

    我有一个具有多种模式的函数 我有两个或多个共享相同的表达式 我想替换它们 现在如果我写一个where子句在底部 缩进它并定义一个新变量 因为我想替换它的表达式不起作用 Example myFunction firstParam second
  • CS0019 运算符不能应用于“bool”和“int”类型的操作数

    该程序是为了响应作业 创建一个名为Sum 接受任意数量的整数参数并且 显示它们的总和 写一个Main 方法证明了Sum 当传递一个 三个 五个或十个整数的数组时 方法可以正常工作 将程序另存为UsingSum cs 来自 Microsoft
  • 如何将

    如何将日本纪元日期字符串输入解析为LocalDate LocalDateTime通过 Java 8 DateTime API 日本日历日期示例 明治23年11月29日 昭和22年5月3日 平成23年3月11日 金 14時46分 令和5年1月
  • 从网络共享运行“部分受信任”的 .NET 程序集

    当我尝试运行 NET 程序集时 boo exe 从网络共享 映射到驱动器 它会失败 因为它仅部分受信任 Unhandled Exception System Security SecurityException That assembly
  • 为什么 C# 扩展方法必须在静态类中定义? [复制]

    这个问题在这里已经有答案了 我知道 C 扩展方法必须是静态的 我不明白的是为什么这些扩展不能在非静态类或通用类中定义 更新 我对这个设计决策背后的原因感兴趣 这更多的是一种观察而不是答案 但是 当您调用实例方法时 对您正在调用的对象的引用将
  • 使用 mongoDB 将嵌入文档与父字段进行比较

    考虑以下集合 其中父文档有一个amount具有值的字段100000并且有一个嵌入的具有相同字段的文档数组amount和相同的值 id ObjectId 5975ce5f05563b6303924914 amount 100000 offer
  • 通过NAT访问SQL Server实例

    我正在尝试访问通过 IP NAT 映射公开的 SQL Server 所有端口均开放 我不知道 NAT 的详细信息 是否相关 因为那是公司其他地方隐藏在一堆繁文缛节中的内容 这就是我的想法 当您尝试访问 SQL Server 的命名实例时 客
  • 内容://sms/sent/ 不起作用

    这是短信观察者代码 我只需要检查发送的短信 当我使用content sms 我得到结果了 但为什么我使用时没有得到结果content sms sent 我使用的是安卓2 1 import android app Service import
  • 如何获取字符串的宽度(以像素为单位)?

    我正在使用 wxPython 的 HyperTreeList 我想将列宽设置为恰好等于其中最大字符串的长度 为了实现这一点 我想将 python 字符串大小转换为像素 例如 如果我们有一个像这样的字符串 str python len str
  • 与所有子域 codeigniter 共享会话数据

    我正在尝试使用一个session我所有子域的数据 我创建了一个subdomain in cpanel像这样 mydomain in and my mydomain in使用与我相同的路径mydomain in例子 mydomain in使用
  • 如何在我的电脑上运行php文件

    谁能告诉我如何在我的系统上本地运行 php 文件 目前我正在使用服务器来运行文件 我知道要安装 php 和 Apache 我需要查看该程序的输出 例如 如果我需要更多内容 您能告诉我如何运行这些文件吗 php 有一个简单的方法来运行轻量级服
  • 在 QMainWindow 中选择“中央小部件”的规则是什么?为什么它很重要?

    我明白设置CentralWidget需要在Q主窗口乍一看 中央小部件的含义似乎非常不言自明 但有没有更严格的定义 central 比如说 我有几个同样重要的小部件位于窗口的中央区域 我是否应该始终找到一种方法将它们分组在一起并将该组设置为中
  • PHP filemtime 函数 - “统计失败”

    我的 PHP filemtime 函数有问题 在我的网络应用程序中 我使用带有缓存选项的 Smarty 模板引擎 在我的网络应用程序中 我可以执行一些会产生错误的操作 但让我们只关注一个操作 当我单击页面上的链接时 某些内容会更新 我可以单
  • Linux:是否有从套接字读取或接收超时?

    如何尝试从套接字读取超时数据 我知道 select pselect poll 有一个超时字段 但是使用它们会禁用 tcp reno 堆栈中的 tcp 快速路径 我唯一的想法是在循环中使用 recv fd MSG DONTWAIT 您可以使用
  • 如何拦截CallKit来电屏幕发送的“消息”?

    我正在使用 iOS 10 的 CallKit 来接听来电 我的应用程序中的呼叫不是来自 电话号码 或 电子邮件地址 而是来自我的协议中的内部标识符 因此 我报告来电CXHandleType of CXHandleTypeGeneric 并不