有没有办法通过iOS 7中的代码关闭手机上的铃声(使iPhone静音)?

时间:2014-03-10 07:12:56

标签: ios iphone objective-c

有没有办法通过iOS 7中的代码关闭手机上的铃声(使iPhone静音)?

我发现AppStore中有一个应用程序具有关闭手机铃声的逻辑,即使iPhone铃声开关设置为开启也是如此。 https://itunes.apple.com/us/app/silentalert/id506092189?mt=8

非常感谢某些代码或某些参考。我经历了许多Stack-overflow post而没有太大的成功。

1 个答案:

答案 0 :(得分:7)

首先,你能说明你已经尝试过的东西而且你还没有能够工作吗?

另见this related and possibly duplicate StackOverflow Question。其中说这是不可能的,然后提到Apple AppStore不会批准的私有API。

有关私有API的详细信息,请参阅this StackOverflow Question

具体而言,您需要从Celestial Private API或AVController中的setMuted调用toggleActiveCategoryMuted,但这很可能会被Apple拒绝提交给AppStore。

基于阅读API文档,我相信引用的应用程序的工作方式是将AVAudioSessionCategory设置为AVAudioSessionCategoryAudioProcessing并使其自身成为活动会话。

如果当应用程序变为后台并且您想要请求更多时间时,这不会继续静音,请参阅this StackOverflow Question。或者,请查看this code examplesupporting blogpost等重复播放静音的内容。注意Apple应用程序商店评论显然也对这种方法不满。代码实际上是一个更新的fork,它应该在新的iOS版本上运行得更好。

它还具有作为后台应用程序,在后台播放音乐/静音以及处理中断的所有处理。使用位置服务可能是因为它可以使用(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations来使用区域监控或重要更改位置服务来触发应用程序重新启动。

概念的代码示例链接如下:

<强>参考文献: