2013-02-22 69 views
1

我想弄清楚如何通過揚聲器切換當前的電話輸出音頻(就好像人是在電話應用程序上按「揚聲器」。理想情況下,我想要接受揚聲器上的呼叫,但一步一個腳印!開關電話揚聲器 - iOS私人API a

我已經搜索了各種標頭,包括私人和非私人的框架,但我無法找到合適的方法撥打電話以切換到揚聲器。

本來我預計這將是目前在CTCall.h但是沒有什麼用處(在這方面)是在那裏..

有誰ķ現在哪裏找到適當的方法?

非常感謝:)

+0

難道這將是隻能通過越獄訪問的應用?如果沒有,我相信這是不可能的。 – 2013-02-22 21:44:46

+0

@max_這是正確的,由於使用私有API,它不會在App Store上可用 – 2013-02-22 21:45:46

回答

2

幾個思路:

1)看全系統事件的產生。 您可以通過編程方式點擊所需按鈕(「揚聲器」或「應答」按鈕)。 下面是關於該幾個問題:

Simulating System Wide Touch Events on iOS

Simulating System Wide Touch Events in iOS without jailbreaking the device

How to send a touch event to iPhone OS?

您可能感興趣的谷歌更多GSEvent這是連模擬的關鍵。

2)進入模擬器文件夾(/Application/XCode/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk

,做這樣的事情

grep的 - R「揚聲器」 ./

的想法是尋找雙星揚聲器(VS頭文件)。大多數私人的API的頭文件中不記錄(這就是爲什麼他們是私人的原因之一)。

我相信幾個有趣的命中分別是:

  • TelephoneUI私人框架
  • AudioToolbox框架(BTW。它甚至有.h文件中以下的事情:kAudioSessionOverrrideAudioRoute_Speaker)
  • AVFoundation framewokr
  • 由於IOKit *框架(它有kIOAudioOutputPortSubTypeExternalSpeaker在.h文件)

等。

下一步將是反彙編它們。這些框架中的大多數都有很多有趣的API,它們在.h文件中沒有定義。瀏覽器通過它們來檢查你是否會在這個主題上發現任何有趣的內容是有用的。

從這裏如果你不想與拆卸打擾,你可以得到提取標題: https://github.com/nst/iOS-Runtime-Headers/tree/master/PrivateFrameworks