2012-03-09 52 views
2

我正在寫一個覆蓋默認來電屏幕的應用程序。所以我的應用程序中有一個用於接聽電話的按鈕。當用戶點擊該按鈕時,應用程序將接受該呼叫。到目前爲止,我成功地完成了這個應用程序,並且可以在android 2.3.4或更低版本中使用,沒有任何問題。但是,當我在android 2.3.5中使用相同的應用程序,它不能接受電話。所以我想知道是否有另一種解決方案在android 2.3.5中以編程方式接受調用。預先感謝您提供任何指導。以下是接受電話的代碼。在Android 2.3.5接受來電

private static void answerPhoneHeadsethook(Context context) { 
    // Simulate a press of the headset button to pick up the call 
    Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);    
    buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK)); 
    context.sendOrderedBroadcast(buttonDown, "android.permission.CALL_PRIVILEGED"); 

    // froyo and beyond trigger on buttonUp instead of buttonDown 
    Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);    
    buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK)); 
    context.sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED"); 
} 
+0

你可以發佈什麼工作? – user1163234 2012-03-12 06:10:32

+0

我的帖子中的代碼是在我的2.3.4設備上工作,但不能在我的2.3.5設備上工作。 2.3.4設備是sony ericsson active,2.3.5設備是star A3。 – Ricky 2012-03-12 07:57:35

+0

除ACTION_UP和DOWN之外都看起來相同嗎? – user1163234 2012-03-12 08:00:38

回答

1

看一看http://code.google.com/p/auto-answer/源代碼:

AutoAnswer is a very simple android application to answer the phone automatically when it rings. Can be limited to just contacts or starred contacts. Also has a speakerphone option. 

http://code.google.com/p/auto-answer/

+0

我曾經查看過該源代碼,並且正在使用與該項目中的代碼相同的代碼來接受呼叫。它在我的android 2.3.4設備中工作。但是,相同的代碼不適用於我的android 2.3.5設備。順便說一下,這兩款設備都使用相同的應用程序。 – Ricky 2012-03-09 09:31:07

+0

我正在嘗試相同的事情。但是,它不是在我的設備上工作,但在emulater上工作都是2.3.3 ....任何想法?這是連接到你的問題? – user1163234 2012-03-11 16:17:47

+0

到目前爲止解決方案在我的設備(2.3.4)中工作,但我沒有嘗試模擬器。 – Ricky 2012-03-12 02:51:03