有没有办法丢弃 VoIP 推送通知呼叫请求?

2023-12-15

我正在实现一项对讲功能,根据规范,该功能应仅报告并允许一个呼叫,如果已经报告或应答(正在进行),则忽略任何呼叫请求。

最简单的做法是忽略后续呼叫的 VoIP 推送通知消息,但 Apple 不允许这样做,因为如果通知后没有呼叫CXProvider's reportIncomingCall(with:update:completion),应用程序被终止(我猜这是为了防止将这些通知用于其他目的,可疑的选择......)。

因此,即使必须放弃调用,推送通知处理程序仍然必须调用该方法。 我尝试打电话reportIncomingCall(),随后是通话结束请求,使用以下任一方法:

self.provider.reportNewIncomingCall(with: uuid, update: update) { error in
  self.provider.reportCall(with: uuid, endedAt: Date(), reason: .answeredElsewhere)
}

and

self.provider.reportNewIncomingCall(with: uuid, update: update) { error in
  let endCallAction = CXEndCallAction(call: uuid)
  let transaction = CXTransaction(action: endCallAction)
  self.controller.request(transaction) { error in
  }  
}

(请注意,这不是我正在使用的实际代码,因为项目中的架构更加详细)

where controller是一个实例CXCallController。我也尝试了两者的组合,但仍然报告第二个呼叫,我必须手动结束它。

是否有“合法”的方式来丢弃 VoIP 呼叫请求?我在文档中没有找到任何内容,只是每个 VoIP 推送通知后面必须调用的规则reportIncomingCall().


我知道文档说每个 VoIP 推送通知必须报告新的来电。但是,据我所知,只要您已经有一个正在进行的通话,您就可以随意接收任何 VoIP 推送,而无需报告另一个新的来电。

我不知道这是否只是文档不精确,或者苹果是否计划在未来消除这种可能性,但事实是它正在发挥作用。我在 App Store 中发布了一个可以正常运行的应用程序,我只是做您想做的事情:如果呼叫已经在进行中,则忽略任何其他 VoIP 推送。

问题是:Apple 强迫我们在收到 VoIP 推送时报告新来电的原因很明显,不是吗?但是,只要正在进行通话,您的应用程序就处于活动状态并正在运行,对吧?为什么在这种情况下他们还要限制 VoIP 推送的使用?只要应用程序正在运行,您可以使用 VoIP 推送执行的任何操作,无需 VoIP 推送也可以完成。

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

有没有办法丢弃 VoIP 推送通知呼叫请求? 的相关文章

  • Swift 中的 quitFirstResponder

    我怎样才能用Apple的新语言实现它 Objective C 代码 void touchesBegan NSSet touches withEvent UIEvent event for UIView view in self view s
  • 奇怪的父/子NSManagedObjectContext现象

    我创建了两个这样的上下文 create writer MOC privateWriterContext NSManagedObjectContext alloc initWithConcurrencyType NSPrivateQueueC
  • 当自定义子视图处理触摸时防止 UITableView 滚动

    在我的 iOS 应用程序中 有一个 UITableView 其中一个单元格中包含一个自定义子视图 该单元格是一个交互式视图 它处理触摸事件 touchesBegan touchesEnded touchesMoved 以更新自身 问题是 当
  • 仅在 iPhone X 上显示状态栏

    如果不是 iPhone X 则希望隐藏状态栏 如果是 iPhone X 则希望显示状态栏 这很可能必须以编程方式完成 因为 plist 中没有支持此功能的键 我发现的最接近的一个是UIStatusBarHidden 方法一 You have
  • 在 UITextView 上添加具有自定义间距和文本的图像

    I want to add Image on text view and want proper spacing as shown in screenshot 我尝试在文本视图上添加图像 但在根据要求放置文本时遇到问题 请向我提供有关同样的
  • iOS 解析如何通过 URL 下载文件

    我正在将 parse 用于我的聊天应用程序 当我上传文件时 我保留该 url 并将该 url 发送给其他用户 然后其他用户可以通过该 URL 下载文件 这是我上传文件的代码 void uploadBlob NSData blob fileN
  • 使用 UIKeyCommand 检测删除键

    任何人都知道如何使用检测 删除 键UIKeyCommand在 iOS 7 上 当人们在使用 Swift 时遇到问题时 我认为用 Objective C 和 Swift 编写一个小型的 完整的例子可能是一个很好的答案 请注意 Swift 没有
  • 你如何在react-native中实现捏合缩放?

    我一直在研究 PanResponder 我当前的工作假设是 我将检测是否有两个触摸正在向外移动 如果是 则增加元素大小onPanResponderMove功能 这似乎是一种混乱的方法 有没有更顺畅的方法呢 如果您只需要简单的捏缩放功能 只需
  • ShareKit + Facebook 身份验证不起作用

    我正在使用 ShareKit 从我正在开发的 PhoneGap 应用程序发布到 Facebook 我在 Facebook 中创建了该应用程序 并在我的项目中安装了该插件 Twitter 工作正常 但当我尝试在 Facebook 上分享时出现
  • 如何在 Swift Playgrounds 中获得弹出对话框

    我想知道如何在 Swift 中弹出一个对话框游乐场 是的 必须在 Playgrounds 中 我尝试了以下代码 直接来自 AppleDevs 站点 然而 无论我如何尝试 self tag always抛出错误 谁能帮我这个 import U
  • 如何修复 ReactiveCocoa(带有 CocoaPods)的安装?

    这里是新手 尝试将 ReactiveCocoa 2 2 4 和 CocoaPods 安装到项目中 但在运行时遇到错误 我用过github 上的这个 podspec https github com CocoaPods Specs blob
  • PhoneGap 1.4 封装 Sencha Touch 2.X - 性能怎么样?

    我正在构建一个多平台平板电脑应用程序 仅使用其 Webview 使用 Phonegap 1 4 对其进行包装 然后使用 Sencha Touch 2 框架发挥我的魔力 我所说的多平台是指 iOS 5 X 和 Android 3 0 目前 到
  • 将语音添加到自定义 UIMenuController

    我创建了一个自定义UIMenuController in a UIWebView但它似乎摆脱了 说出选择 选项UIMenuController在那之后 所有测试设备上的 偏好设置 中都打开了发言选择选项 并且它出现在其他应用程序中 包括非
  • iOS NSURLSession,如何在didCompleteWithError中重试

    我想在我的服务器上尝试一次调用 直到成功为止 我想每 30 秒尝试一次 所以我使用 NSURLSession 进行通话 NSURLSessionDownloadTask task self session downloadTaskWithR
  • 所有针对 iTunes Connect 的构建,导入此构建时出错 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我将构建上传到应用程序商店 之后它在活动中显示错误 任何人都可以帮帮我 SOLVED 转到构建设置 gt 搜索 bitcode gt 转启
  • 如何从 Firebase 同步检索数据?

    我有两个集合 即用户和问题 根据使用 userId 登录的用户 我检索currQuestion价值来自users收藏 基于currQuestion值 我需要检索question来自 Firebase 的文档Questions收藏 我使用下面
  • CustomNSError 协议有什么作用以及为什么我应该采用它?

    什么是CustomNSError协议的用途以及为什么我应该采用它 Apple提供的文档仅指出 描述错误类型 具体提供域 代码和 用户信息字典 我已经在谷歌上搜索过 但找不到与我的问题相关的任何内容 每种类型都符合Error协议是隐含地桥接的
  • 如何在 Swift 中创建 UIAlertView?

    我一直在努力在 Swift 中创建 UIAlertView 但由于某种原因我无法得到正确的语句 因为我收到此错误 找不到接受提供的 init 重载 论点 我是这样写的 let button2Alert UIAlertView UIAlert
  • 断点条件错误

    我已经根据条件设置了断点 event name isEqualToString Some Name 这很好用 但是 当我尝试添加另一个带有条件的断点时 part name isEqualToString Some Value With A
  • 使用 nib 作为带有 nib 类的表节标题

    我想创建一个加载 nib 文件并将其设置为标题 UIView 的节标题 这个 nib 文件还将有一个关联的类 其中插座和操作连接到 因此我想像平常一样使用 nib 加载该类 我在网上搜索并找到了几个类似的答案 但我找不到任何适合我的答案 经

随机推荐

  • Grails:部署时间非常慢。 “解决依赖关系...”需要 10 多秒

    每次我对 Grails 应用程序进行微小更改时 部署它都需要 10 15 秒 大部分时间都在 解决依赖关系 Welcome to Grails 1 3 7 http grails org Resolving dependencies Dep
  • 创建后如何在 JTextField 中设置新文本?

    我有一个 jTextField 当我创建框架时 我将其值设置为一定的总和 这是启动代码 totalTextField setText itemsPriceTextField getText Float toString orderDetai
  • 如何在模拟器中测试 MFMailComposeViewController

    有没有办法测试从以下位置发送电子邮件MFMailComposeViewController在 iPhone 模拟器中 不 你不能在模拟器上测试它 我的意思是你的邮件不会被送达 我们将能够测试有限的东西 例如 视图将如何 当用户单击取消按钮时
  • Android中的自动滚动TextView将文本带入视图

    我有一个TextView我正在动态添加文本 in my main xml文件中我设置了属性以使我的最大行数为 19 且滚动条垂直 in the java我正在使用的文件textview setMovementMethod new Scrol
  • C 至 IEC 61131-3 IL 编译器

    我需要将一些现有的 C 代码移植到IEC 61131 3兼容的PLC 我可以选择将代码拆分为离散的功能块 并将这些块编织成标准解决方案 梯形图 FB 结构化文本等 但这需要分割 C 代码才能构建每个功能块 当查看 IEC 规范时 我意识到I
  • 错误:客户端必须具有 ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION [重复]

    这个问题在这里已经有答案了 我在另一个应用程序中使用模块 在实现该模块之前 我将其设置为 API 级别 23 编译和目标 就像我的主项目一样 除了这个错误之外 这工作正常 问题是 自 marshmellow 以来 Google 已经改变了权
  • 在 WooCommerce 订单管理页面 (ACF) 中输出产品自定义字段

    对于 WooCommerce 我使用的是高级自定义字段插件跟踪我实际存储每个产品的位置 当收到订单时 我希望能够查看管理编辑订单页面并查看项目的存储位置 这样我就可以抓着它发货了 这是我想看到的图片 希望这是有道理的 我只想在 WordPr
  • NetworkStream 不支持查找操作

    我正在创建简单的代理服务器 但我遇到了一个奇怪的情况 我有以下代码 var clientRequestStream tcpClient GetStream var requestHeader clientRequestStream GetU
  • java在运行时生成类文件

    我需要在运行时生成类 每个类都映射到一个数据库表 此类是 ORM 中使用的模型类 当客户端指定要使用的数据库表时 我的应用程序检查是否存在相应的模型类 如果不存在 生成它 and load it用于使用和save it 这样下次我们就不需要
  • 在 Xcode 7.2 中添加 Font Awesome 时出现问题

    我正在尝试在我的 iPhone 应用程序中使用 FontAwesome 我已经安排好了一切 但每次我得到这个 question mark Image 我确信我已经在我的项目和 Plist 中正确添加了字体 这是我的项目设置 Step 1 在
  • 棉花糖循环导入

    我有两个彼此相关的对象 我希望能够通过相关属性来访问一个对象 E g A b relationship obj some property 如何在不创建循环导入的情况下执行此操作 lib py class Relationship obje
  • 显示小数点后两位,不四舍五入[重复]

    这个问题在这里已经有答案了 可能的重复 如何将数字格式化为只有两位小数 我已经到处寻找解决方案 假设我有一个带有如下数字的变量 price1 1597 price2 1497 85 有没有一个函数 当有偶数时 显示2位小数而不四舍五入 pr
  • 将可绘制对象添加到 CirclePageIndicator

    如何将图像添加到圆形页面指示器而不是添加颜色 我尝试添加图标页面指示器 但单击方法不起作用 但我可以添加图像 在circlepageIndicator onclick方法正在工作 但如何添加可绘制的图像到CIRCLEPAGE INDICAT
  • 如何使用 JsonArray 和 JsonObject 创建 Json

    我想创建一个 Json 结构 它实际上是 JsonObject 内的 JsonArray 简单的结构是 1 req ctrlId txt1 ctrlId txt2 2 req ctrlId txt1 val val1 ctrlId txt2
  • Firefox 中奇怪的 HTTP/2 HPACK 编码

    我正在开发服务器端 HTTP 2 实现并使用 Firefox 作为测试客户端 有时我会收到看起来由 FF 编码错误的请求 但在指责 FF 之前 我想先向您确认一下我是否正确解码了 HPACK 数据 以下是原始请求 按 Firefox 开发控
  • JavaFx:如何比较 GridPane 内动态创建的 TextField 的值?

    我正在使用 JavaFx 开发一个应用程序 其中我在 GridPane 内创建动态 TextFields 并且有一个按钮最初被禁用 如下所示 所以我想要的是 如果第 1 列 TextFields 值小于第 3 列 TextFields 值
  • Android:仅获取根布局的屏幕尺寸

    请让我正确地在这里 我想获取 onCreate 方法中活动 布局可用的空间的高度 宽度 以计算可以赋予子布局的高度 我可以使用以下方法获取屏幕尺寸 root LinearLayout findViewById R id mainroot M
  • 从 SSIS 脚本任务创建对自定义程序集的引用 - vb

    我正在寻找一种在 SSIS 脚本任务中创建 导入 Newtonsoft Json Linq 的方法 但这显然不像 SSIS 中的 管理 NuGet 包 那么简单 那么还有另一种方法可以解决这个问题吗 我找到了一个link在我看来这是一个可能
  • php 中的 cfhttp“POST”

    我有一个 ColdFusion 页面 它附加了带有表单变量的 URL 我正在尝试在 php 中复制此代码
  • 有没有办法丢弃 VoIP 推送通知呼叫请求?

    我正在实现一项对讲功能 根据规范 该功能应仅报告并允许一个呼叫 如果已经报告或应答 正在进行 则忽略任何呼叫请求 最简单的做法是忽略后续呼叫的 VoIP 推送通知消息 但 Apple 不允许这样做 因为如果通知后没有呼叫CXProvider