2011-11-22 17 views
4

我編程的應用程序,可以自動接聽電話。問題是,如果我已經在打電話並且有人在響,它不應該回答一個問題。 有沒有辦法做到這一點?如何不火PhoneStateListener.CALL_STATE_RINGING如果已經在討論和第二個主叫方呼籲

根據文檔,如果我檢查與TelephonyManager狀態它將是CALL_STATE_RINGING而不是CALL_STATE_OFFTHEHOOK

我必須補充,所以我知道,有一個正在進行的呼叫或是否有更好的解決方案,它設置爲true在不斷變化的電話狀態的變量?

謝謝!

/編輯:我回答未經許可Modify_Phone_State通話,所以只有找出如果已經有正在進行的呼叫。

回答

1

更多的信息,從而顯然有沒有辦法弄清楚這一點,我儘快存儲布爾在SharedPreference作爲國家去OFFTHEHOOK(真)。

當狀態更改爲IDLE,我設置布爾爲false。因此,這意味着,如果RINGING而有人已經打電話被激發,我讀出的變量是真實的,然後丟棄以下操作。

對於那些誰想要了解如何接聽電話的更多信息,看看在AutoAnswer Project

1

跟蹤呼叫狀態接縫的最好方式,因爲你的問題是關閉的Android標準的軌道。

還有就是你的問題沒有官方的答案,因爲:

通過Android的API有一個第三方應用提供商回答一個電話沒有正式的方式,因爲
1:你」已經使用未公開的API。
2:請求MODIFY_PHONE_STATE許可只適用於根,因爲2.3

/系統簽名的應用程序因此,如果一個有效的(在代碼生成)工作答案存在於你的問題,它可能正式不工作的每一個製造商/型號設備。在How to grant MODIFY_PHONE_STATE permission for apps ran on Gingerbread

+0

其實我沒有使用Modify_Phone_State許可,但模擬一個藍牙耳機kepress是接聽來電,而不在許可android manifest ;-) – Force

+1

好戲!在我的回答中,我沒有想到用這種方式掛斷電話。 –