2010-12-01 63 views
1

編程時激活揚聲器hey..i計劃的功能添加到我的應用程序,它會在當用戶接到電話揚聲器自動開關..接收電話

這裏是我的代碼部分:

case TelephonyManager.CALL_STATE_OFFHOOK: 
       //CALL_STATE_OFFHOOK; 

       setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); 
       am.setMode(AudioManager.MODE_IN_CALL); 
       am.setSpeakerphoneOn(true); 
      boolean check = am.isSpeakerphoneOn(); 
      Toast.makeText(Speaker.this, "LoudSpeaker On: "+ check,Toast.LENGTH_LONG).show(); 

我已經在manifest中增加了MODIFY_AUDIO_SETTINGS的權限..但是...揚聲器沒有設法打開..任何人都可以在這個問題上伸出援助之手..提前感謝..順便說一句..這個應用程序是在Android 2.1實施的

+0

任何人都可以提供幫助?謝謝 – rickyfan 2010-12-02 06:32:43

回答

2

嘗試在開機前,持有500毫秒..

所以這將是這樣的:

case TelephonyManager.CALL_STATE_OFFHOOK: 
     // CALL_STATE_OFFHOOK; 
     try { 
      Thread.sleep(500); // Delay 0,5 seconds to handle better turning on 
           // loudspeaker 
     } catch (InterruptedException e) { 
     } 
     setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); 
     am.setMode(AudioManager.MODE_IN_CALL); 
     am.setSpeakerphoneOn(true); 
     boolean check = am.isSpeakerphoneOn(); 
     Toast.makeText(Speaker.this, "LoudSpeaker On: " + check, 
       Toast.LENGTH_LONG).show(); 

順便說一句我的Xperia 4.1.2和您最初的代碼工作沒有任何問題..