2014-01-30 78 views
1

我有一個Android應用程序恰好在用戶的Android手機的後臺運行,而用戶正在通過某人給用戶發出的電話進行通話。在某個時候,我的應用程序想要靜音來自電話的音頻並播放自己的音頻。此外,我想在不中斷用戶講話的情況下做到這一點。需要什麼權限才能通過後臺應用以編程方式將電話靜音?

我的應用程序需要具備哪些權限才能執行此操作?是否有任何足以讓我的應用程序執行此操作的第三方應用程序的權限?

看起來AudioManager.setStreamMute(STREAM_VOICE_CALL, true)會使語音通話的音頻輸出靜音。但是我不知道需要什麼權限:它不在Android API文檔或the Pscout permission map中列出。另外,我無法判斷在Android的任何版本中是否存在任何限制,無法在後臺運行的應用程序中使用此API。如果問題陳述不明確:Alice已經在她的手機上安裝了我的應用程序,Bob打電話給Alice,Alice接通電話並與Bob通話,在某個時候,我的應用程序想要完全禁止Bob的電話語音並播放自己的音頻剪輯,所以Alice會聽到音頻剪輯,而不是Bob說的任何內容,但是我不想關掉Alice手機上的麥克風:如果Alice說什麼,仍然應該拿起來在電話和鮑勃應該仍然聽到它的電話。)

回答

0

我認爲android.permission.CALL_PRIVILEGED應該是足夠的。

+0

[Android文檔](http://developer.android.com/reference/android/Manifest.permission.html#CALL_PRIVILEGED)表示'CALL_PRIVILEGED'爲「不適用於第三方應用程序」。我認爲這意味着第三方應用程序不允許請求'CALL_PRIVILEGED',因此請求'CALL_PRIVILEGED'並不是真正的選擇。那麼,是否還有其他許可可以滿足我的問題中所述的目的?絕對需要「CALL_PRIVILEGED」(意味着不可能做我想做的事),還是有一些方法可以使用*可用於第三方應用程序的權限來執行此操作? –

+0

嗯,不知道這一點。現在你說,我去了文檔,並沒有發現任何關於它的事情,但是我記得前一段時間和這個混淆了,並且這種方式奏效了。我會再看一點。 – nKn

+0

這可能會做你正在尋找,但它似乎很難理解:http://stackoverflow.com/questions/6874881/how-does-setmicrophonemute-work – nKn

2

您可以嘗試:android.permission.MODIFY_AUDIO_SETTINGS

相關問題