我知道这个问题已经被问了一段时间了。我在 stackoverflow 上阅读了所有主题。 但我的问题没有令人满意的答案。
我想以编程方式将运行 iOS 5 的 iPhone 静音。许多人会说公共(public)框架不可能做到这一点。我对此很清楚。我计划编写的应用程序仅供个人使用。我不打算通过 AppStore 出售它(还没有?)。
我的研究得出的结论是,有多种方法可以通过编程实现 iPhone 静音。
- 使用私有(private)框架
- Hook 正在播放声音的函数或方法
- 替换默认声音(例如铃声、MailSent、iMessage、usw...)
对上述方法的一些想法:
- 我类转储了私有(private)框架的所有 header (在我的 Xcode 安装中),但没有找到指示(通过其函数名称)所需行为的函数
- 我认为这是可能的,但我不知道要 Hook 的功能。因此,要完成这项工作需要付出相当大的努力(我想我不想这样做)
- 再想一想,这可能不是一个好的解决方案。也许你可以改变声音。但手机根本就没有静音(游戏、YouTube...)
我曾给 AVSystemController
一个机会使用 changeActiveCategoryVolumeBy
和 setVolumeTo
方法,但这些方法不会使我的手机静音,但会设置将铃声设置为 0.06(或其他值)。
必须有一种方法可以让 iPhone 完全静音,RingToggle(越狱应用程序)做得很好。
有人知道怎么做吗?
最佳答案
我认为即使使用私有(private)框架,您也无法从沙盒应用程序中将手机静音。
RingToggle 的作用可能是挂接到跳板并使用跳板的方法将手机静音;他们可能正在使用 MobileSubstrate 扩展。
关于iphone - 如何将运行 iOS 5 的 iPhone 静音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9283568/