2012-01-09 8 views
5

portato qui è il codice per fare una telefonata dalla mia attivitàcome fare una telefonata con altoparlante sul

public void makeAPhoneCallWithSpeakerOn() 
{ 
    String uri = "tel:" + posted_by.trim() ; 
    Intent intent = new Intent(Intent.ACTION_CALL); 
    intent.setData(Uri.parse(uri)); 
    startActivity(intent); 
} 

domanda è:

come posso fare la telefonata e attivare l'altoparlante sopra?

10 volte Elad

risposta

7

Utilizzare un AudioManager per accendere gli altoparlanti e un CallStateListener per ricevere la fine della chiamata.

+0

Quindi stai dicendo che dovrei ascoltare le chiamate in uscita? Se sì, come posso dire che provengono dalla mia applicazione? –

+0

No, prima di iniziare la chiamata si registra l'ascoltatore, quindi si attiva l'altoparlante. Dopo aver ricevuto 'CALL_STATE_IDLE' rimuovi l'ascoltatore e disattiva nuovamente i vivavoce. – Force

+0

Proverò a riportare qui –

-1

ho scoperto che se aggiungo il codice in questa seguente ordine funziona meglio per me

 audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
     audioManager.setMode(AudioManager.MODE_IN_CALL); 
     audioManager.setSpeakerphoneOn(true); 

mentre la seguente non funziona per me se setSpeakerphoneOn (vero) in prima linea:

 audioManager.setSpeakerphoneOn(true); 
     audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
     audioManager.setMode(AudioManager.MODE_IN_CALL); 
+1

2nd non funziona perché audioManager non è ancora stato definito –

Problemi correlati