2011-08-10 122 views
1

我正在创建一个调整,并且我想以编程方式“覆盖”静音/取消静音。以编程方式打开/关闭iPhone静音。 (强制静音/取消静音)

我完全知道这是不是苹果批准。

我会如何处理这个问题?目前我只能设置音量调小,像这样:

AVSystemController *AVSysController = [objc_getClass("AVSystemController") sharedAVSystemController]; 
[AVSysController setActiveCategoryVolumeTo:0.0]; 
+0

这是苹果认可的做法吗? – Oliver

+0

不,Apple不批准“系统覆盖”代码。 –

回答

0

我只是改变音量棒(赫克,保存它曾经是那么以后可以“U nmute”吧)。由于有一个物理静音开关,如果交换机说实际上你已经将自己解除静音(或者反之亦然),则手机静音会对用户造成混淆。

+0

这是可以理解的,但不是我的问题的答案。另外,在正常情况下,用户可能会感到困惑,但代码不适用于正常情况。 –

+0

按照我的建议,通过存储,调零和恢复音量来嘲弄静音有什么问题?这与用户的真实静音区别吗? – tsm

+0

您不能将音量完全设置为零,然后用户的设置(振动,闪烁等)将不会被应用。再次,不是我的问题的答案。 –

0

不,这是不可能的。由于有一个物理开关可用于静音/取消静音整个设备,因此没有可用的软件方法。

即使有人试图使用私有API执行此操作,它也会与设备上可用的物理交换机发生冲突。

可能只是为了提供可用的物理交换机,苹果有意不提供相同的软件API。

+0

这是不可能的合法的方式。但静音设备是可能的私人apis ..没有问题..但如果你静音设备编程,你必须处理设备的物理交换机。如何以编程方式处理物理切换? – macpandit

+0

再次检查您使用的github链接。它清楚地表明他们通过将音量降至零来实现静音功能。他们并没有真正关闭系统。将系统静音并将音量降至零是两种不同的技术概念。首先想想你实际需要什么,你需要合法或非法的方式。 – macpandit

+1

如果您想进一步讨论,应该在聊天中完成,因为堆栈溢出不是论坛。 –