iOS 检测系统音量变化。私有 API 与否? AVSystemController_SystemVolumeDidChangeNotification

2024-03-20

可以听AVSystemController_SystemVolumeDidChangeNotificationNSNotification 是否被视为(在 App Store 审核过程中)使用私有 API?

在我的应用程序中,我需要显示和更新当前的音量级别。按下硬件音量按钮后以及 MPVolumeView 滑块中的音量更改后,音量指示器应更新。

我搜索了如何获取按下硬件音量按钮的通知或事件的解决方案,并找到了许多解决方案。

例如,iPhone 检测按下音量键。 https://stackoverflow.com/questions/7528443/iphone-detect-volume-keys-press

and

如何在 iOS 上获取音频音量级别和音量更改通知? https://stackoverflow.com/questions/3651252/how-to-get-audio-volume-level-and-volume-changed-notifications-on-ios-4

我喜欢听 NSNotificationCenter 的解决方案,似乎最简单明了的解决方案是听AVSystemController_SystemVolumeDidChangeNotification(而且效果很好)

但有一件重要的事情我想确定。

此通知名称并未出现在任何 Apple 官方文档中,并且存在关于此通知用法是否会被视为“使用私有 API”的讨论。

据我了解,使用私有 API 与调用私有方法。这就是为什么使用此通知密钥不能被视为私有 API 使用(因为实际上我们使用通知名称作为 NSString)。

也许有人肯定知道这一点,或者有使用该功能的经验AVSystemController_SystemVolumeDidChangeNotification应用程序被提交/拒绝?

非常感谢您提供任何信息!


我知道评论中提到了使用 KVO 的替代方法。评论中也讨论了这种方法的局限性。最初的问题是关于使用的体验NSNotificationCenter and AVSystemController_SystemVolumeDidChangeNotification。我在我的应用程序中使用了这种方法,并且没有被拒绝。它可以在 App Store 上找到。

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

iOS 检测系统音量变化。私有 API 与否? AVSystemController_SystemVolumeDidChangeNotification 的相关文章

  • 决策树和规则引擎 (Drools)

    In the application that I m working on right now I need to periodically check eligibility of tens of thousands of object
  • 我可以通过在 Android Activity 中声明适当的成员“静态”来提高效率吗

    如果一个 Activity 在实践中是单例 我认为我可以通过声明适当的成员 静态 来获得一些效率 且风险为零 是的 The Android 文档说 http developer android com guide topics fundam
  • WCF 服务主机配置 - 请尝试将 HTTP 端口更改为 8732

    我的 PC 上运行着一个复杂的基于 WCF 服务的解决方案 但由于安装 Windows 8 1 时出现问题 我不得不 刷新 我的 PC 现在我已经重新安装了 Visual Studio 2012 我的项目不再正常运行 当我调试单元测试时 w
  • Chrome 调试器注入 javascript

    我有这样的好奇心 是否可以以某种方式在我的页面中注入 javascript 并执行它并调试它 正如您在控制台中所做的那样 但在控制台中您无法暂停并观察变量 是否可以调试我通过控制台输入的代码 为什么无法调试通过 XHR 接收的代码 Than
  • Jquery 以编程方式更改

    文本

    编辑 解决方案是将其添加到个人资料页面而不是性别页面 profile live pageinit function event p pTest text localStorage getItem gender 我在列表视图中有一个带有一些文
  • 如何为命令 stdout 添加 [stdout] 和 [stderr] 前缀?

    使用命令结构 https doc rust lang org std process struct Command html 如何向 stdout 和 stderr 缓冲区添加前缀 我希望输出看起来像这样 stdout things are
  • $ 在 JQuery 中意味着什么

    在下面的 var obj one 1 two 2 three 3 four 4 five 5 each obj function i val console log val 这里是什么意思 是对象吗 是一个别名jQuery对象 函数 它充当
  • 在DialogFragment中,onCreate应该做什么?

    我目前正在摆弄 DialogFragment 以学习使用它 我假设相比onCreateView onCreate 可以这样做 public void onCreate Bundle savedInstanceState super onCr
  • 如何通过点击复制 folium 地图上的标记位置?

    I am able to print the location of a given marker on the map using folium plugins MousePosition class GeoMap def update
  • 如何禁用 solr 管理页面

    对于生产来说 拥有一个甚至不要求登录凭据的 solr 管理员感觉不安全 如何禁用默认的 solr 管理页面 我只是希望我的 web 应用程序使用 Solr 进行搜索词索引 我强烈建议保留管理页面用于调试目的 它在很多情况下拯救了我 有多种方
  • 进程被杀死后不会调用 onActivityResult

    我有一个主要活动 Main 和另一个活动 Sub 由 Main 调用 startActivityForResult new Intent this SubActivity class 25 当我在 Sub 时 我终止该进程 使用任务管理器或
  • 在成为FirstResponder或resignFirstResponder的情况下将对象保持在键盘顶部?

    我目前在键盘顶部有一个 UITextField 当您点击它时 它应该粘在键盘顶部并平滑地向上移动 我不知道键盘的具体时长和动画类型 所以确实很坎坷 这是我所拥有的 theTextView resignFirstResponder UIVie
  • 水平和垂直居中 div 位于页面中间,页眉和页脚粘在页面顶部和底部

    我正在尝试制作一个具有固定高度页眉和页脚的页面 页眉位于屏幕顶部 100 宽度 页脚位于底部 100 宽度 我想将一个具有可变高度内容的 div 居中放置在页眉和页脚之间的空间中 在下面的 jsfiddle 中 如果内容比空格短 它会起作用
  • Rails - 渲染:目标锚标记的操作?

    我希望像这样使用渲染 render action gt page form 我也尝试过这个 render template gt site page form 那也没用 这个特定页面上的表单位于最底部 如果提交时发生任何错误 我不希望用户被
  • 是否可以使用 Dapper 流式传输大型 SQL Server 数据库结果集?

    我需要从数据库返回大约 500K 行 请不要问为什么 然后 我需要将这些结果保存为 XML 更紧急 并将该文件通过 ftp 传输到某个神奇的地方 我还需要转换结果集中的每一行 现在 这就是我正在做的事情 TOP 100结果 使用 Dappe
  • 使用 paramiko 运行 Sudo 命令

    我正在尝试执行sudo使用 python paramiko 在远程计算机上运行命令 我尝试了这段代码 import paramiko ssh paramiko SSHClient ssh set missing host key polic
  • 为什么 try catch 块没有捕获 Promise 异常?

    我对承诺的错误处理感到困惑 答案可能很明显 但我不明白 我有以下示例代码 var test async function throw new Error Just another error try test then catch err
  • HTML 表格 - 固定列宽和多个可变列宽

    我必须建立一个有 5 列的表 表格宽度是可变的 内容宽度的 50 有些列包含固定大小的按钮 因此这些列应该有一个固定大小 例如 100px 有些列中有文本 所以我希望这些列具有可变的列宽 例如 Column1 tablewidth sum
  • 通过 Telnet 运行应用程序

    我需要创建一个 BAT 文件来通过 telnet 运行应用程序 但据我所知 在 DOS 上无法执行此操作 Telnet 不允许在连接的瞬间向远程计算机发送任何命令 并且 BAT 文件中的每个后续命令只有在 telnet 停止后才会执行 这段
  • R data.table 1.9.2 关于 setkey 的问题

    这似乎是 1 8 10 后引入的一个错误 与包含列表的 DT 的 setkey 相关 运行下面两个代码来查看问题 library data table dtl lt list dtl 1 lt data table scenario 1 p

随机推荐

  • 方法的通用接口重载?

    有没有一种好的 通用的方法来执行以下操作 而无需诉诸第二种方法或大量强制转换 我希望 API 尽可能轻量 并且在 OO 方面对我来说似乎没问题 class Foo public T Bar
  • 无法将(无类型字符串常量)转换为*字符串[重复]

    这个问题在这里已经有答案了 persistentvolumeclaim apiv1 PersistentVolumeClaim ObjectMeta metav1 ObjectMeta Name mysql pv claim Spec ap
  • 如何在 Django 中覆盖外部应用程序模板?

    我尝试覆盖django recaptcha模板没有任何运气 我究竟做错了什么 我知道在 Django 中覆盖外部应用程序的模板 https stackoverflow com questions 17918839 override temp
  • 如何解决平板电脑中的以下冲突?

    我为手机和平板电脑开发了一个 Android 应用程序 它已在两个模拟器中运行 当我在平板电脑模拟器中运行时 小部件的大小会填满屏幕 我应该怎么做才能解决这个冲突 您可以为手柄和平板电脑制作两种不同的布局res layout 用于手柄 和r
  • 从 CSV 文件读取的数据框中删除级别 - R

    我尝试加载棒球统计数据this http baseballguru com MLB2011 xls关联 当我使用从文件中读取它时 data lt read csv MLB2011 csv 它似乎将所有字段读取为因子值 我尝试通过执行以下操作
  • Str_Detect 使用跨列检测多列

    我想根据以下结果创建一个新专栏str detect跨多列使用across 例如 在下面的测试数据中 我想在以 job 开头的列中搜索 No job 如果在任何列中检测到该字符串 则返回 1 如果未检测到 则返回 0 test data lt
  • 使用 Keras 预测进行 Python 多处理

    Context Keras 模型 链接在这里 https drive google com file d 1f0WGCv11uObPziySE2wl6hXYKfyjqXBQ view usp sharing 为了 MWE 需要并行预测大量测
  • 像调用break一样短路Array.forEach

    1 2 3 forEach function el if el 1 break 我怎样才能使用新的来做到这一点forEachJavaScript 中的方法 我试过了return return false and break break崩溃和
  • 2020 年如何在 Windows 版 Git 中永久使用“LF”行结尾?

    我们的存储库使用LF 我的 Git for Windows 安装使用按原样签出 提交 Unix 风格的行结尾 但我在 IDE 中签出的每个文件中仍然出现错误 因为它仍然收到CRLF一直以来 即使它确实支持LF并配置为使用LF通过签到 edi
  • 使用 shell 脚本将人类可读的时间转换为 EPOCH

    我有一个人类可读的时间 08 18 2016 09 18 25 我希望使用 shell 脚本将其转换为纪元时间 我尝试过date s 但我收到错误 日期 无效日期 08 18 2016 09 32 42 将日期时间转换为纪元的规范方法是使用
  • Android Studio 2.3 更新后,Android 应用程序未在模拟器中加载

    我刚刚将 Android Studio 版本上传到 2 3 现在在模拟器中测试我的应用程序时遇到问题 它是一个 Nexus 5X 模拟器 上面加载了 Android 7 0 Nougat API 24 ABI armeabi v7a 我有一
  • Android 中的对象 XML 映射

    我正在开发一个基于客户端 服务器模型的应用程序 其中客户端在 Android 中 服务器在 PHP 中 我想将产品信息 例如名称 价格 说明 从客户端传输到服务器 我已读过编组 解组或序列化它可以实现 但所有教程和示例都是用 Java 编写
  • 业务逻辑层

    我正在使用 ASP NET 和 Telerik 控件 v2009 q2 来编程数据驱动的应用程序 我有一个名为 BLL 的类 它包含 几乎仅 静态类 这些类返回不同的对象 并以一些 id 作为参数 通常以列表形式返回对象组 我的问题是 总是
  • 两个日期范围之间有多少相等的天数,SQL

    我有包含日期 范围的表格 如下所示 DATE DATE2 14 03 2013 17 03 2013 13 04 2013 02 05 2013 我必须创建一个过程 返回等于两个日期范围的天数 一个在表中 另一个在表中 例如 我在表中的日期
  • g++ 版本 4.0.0.8 和 4.3.2 之间有什么区别?

    g 4 0 0 8 和 g 4 3 2 有什么区别 这两个是我在各种编程竞赛中见过的最常用的 C 编译器 我尝试用谷歌搜索 但一无所获 考虑到您对两者之间的 C 变化感兴趣 这实际上并不是一个 巨大的列表 4 0 0 8 只是 4 0 的补
  • 没有身份的 Cookie Asp.net core

    我目前正在开发一个不使用身份的项目 问题是这个项目应该有一个记住我的选项 允许用户自动重新连接到网站 我的问题是我找不到任何完整的教程来创建没有身份的 cookie 如果有人有很好的代码示例或教程 Thanks 在我的项目中 我使用 Ang
  • 您如何使用 TDD 来划分班级?

    我觉得自己对TDD相当熟练 甚至在公司里被认为是 TDD专家 但尽管如此 还是有一些情况我觉得不知道如何正确处理 所以我想听听别人的意见 我的问题如下 尽管一般来说 TDD 帮助我思考类的核心职责 并将所有其他职责提取到依赖类中 但有些情况
  • int 和 double 的均匀随机分布“基类”?

    我正在尝试创建一个用随机数填充列表的函数 并根据列表项的类型生成整数或浮点数 到目前为止 我已经想出了以下代码 并且它有效 template
  • Laravel 中使用 try 和 catch 进行错误处理 [重复]

    这个问题在这里已经有答案了 我想在我的应用程序中实现良好的错误处理 我强制使用此文件来捕获错误 应用 服务 PayUService try this gt buildXMLHeader Should be this gt buildXMLH
  • iOS 检测系统音量变化。私有 API 与否? AVSystemController_SystemVolumeDidChangeNotification

    可以听AVSystemController SystemVolumeDidChangeNotificationNSNotification 是否被视为 在 App Store 审核过程中 使用私有 API 在我的应用程序中 我需要显示和更新