iOS检测系统卷级别更改。私人API与否?AVSystemController\u SystemVolumeDidChangeNotification

iOS检测系统卷级别更改。私人API与否?AVSystemController\u SystemVolumeDidChangeNotification,ios,avfoundation,appstore-approval,nsnotificationcenter,iphone-privateapi,Ios,Avfoundation,Appstore Approval,Nsnotificationcenter,Iphone Privateapi,收听AVSystemController\u SystemVolumeDidChangeNotificationNSNotification(在应用商店审查过程中)是否可以被视为使用私有API 在我的应用程序中,我需要显示和更新当前的音量。在按下硬件音量按钮和MPVolumeView滑块中的音量更改后,音量指示器应更新 我搜索了如何获取硬件音量按钮按下的通知或事件的解决方案,并找到了许多解决方案 比如说,, 及 我喜欢听NSNotificationCenter的解决方案,似乎最简单、最清晰的

收听
AVSystemController\u SystemVolumeDidChangeNotification
NSNotification(在应用商店审查过程中)是否可以被视为使用私有API

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

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

比如说,,

我喜欢听NSNotificationCenter的解决方案,似乎最简单、最清晰的解决方案是听
AVSystemController\u SystemVolumeDidChangeNotification
(而且效果很好)

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

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

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

也许有人肯定知道这一点,或者有使用
AVSystemController\u SystemVolumeDidChangeNotification
和应用程序被提交/拒绝的经验


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

我知道评论中提到了使用KVO的替代方法。评论中还讨论了该方法的局限性。最初的问题是关于使用NSNotificationCenter和AVSystemController\u SystemVolumeDidChangeNotification的经验。我在我的应用程序中使用了这种方法,但没有被拒绝。它在AppStore上提供。

如果您想要一个有文档记录的解决方案,为什么不试试audio session属性上的key value observing?哇,太棒了!非常感谢你,内特!在iOS 7中效果很好,我建议在iOS 6中也可以。是的,你可以。我的应用程序现在在AppStore上。@只有当输出卷不在其最大/最小值时,这才有效。如果是,输出卷永远不会被修改,因此观察也不会发生。@StephenPaul,如果你使用KVO,你只需在应用程序启动时直接读取属性即可。之后,KVO会让您随时更新更改。