2011-08-10 169 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

如果您想進一步討論,應該在聊天中完成,因爲堆棧溢出不是論壇。 –