2014-03-12 54 views
1
揚聲器

大家好,我想從我的服務我的應用程序調用特定號碼。我可以用下面的代碼成功地做到這一點。設置從服務不提供所需的結果

AudioManager audioManager = (AudioManager) 
            getSystemService(Context.AUDIO_SERVICE);     

audioManager.setMode(AudioManager.MODE_IN_CALL); 
audioManager.setSpeakerphoneOn(true); 

然後我就打電話給使用下面的代碼

Intent callIntent = new Intent(Intent.ACTION_CALL); 
callIntent.setData(Uri.parse("tel:" + "1234")); 
callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(callIntent); 

我的電話號碼,但有時它不設置揚聲器。

我對我的表現適當的權限是

 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 

我來自的地方,我需要添加 setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); 這是活動的但是因爲我在我的服務,我不不想打開教訓我的活動如何能夠有效地完成我的任務。請幫助我。

回答

0

我一直想念的是上下文就像我從我的服務調用AudioManager服務,而不是我試圖從偵聽action.PHONE_STATE的廣播接收器調用這些服務。所以,當過我嘗試撥一個號碼的電話管理器的狀態變爲EXTRA_STATE_OFFHOOK然後我改變audioManager.setSpeakerphoneOn(真),這似乎在每次調用工作。

謝謝大家!

相關問題