2012-01-09 21 views
5

traído aquí es el código para hacer una llamada telefónica de mi actividadcómo hacer una llamada de teléfono con altavoz en

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

pregunta es:

cómo puedo hacer la llamada telefónica y activar el altavoz ¿en?

10X Elad

Respuesta

7

Utilice un AudioManager para encender los altavoces y un CallStateListener para recibir el extremo de la llamada.

+0

¿Entonces estás diciendo que debería escuchar las llamadas salientes? Si es así, ¿cómo puedo saber si provienen de mi aplicación? –

+0

No, antes de iniciar la llamada, registra el oyente y luego activa los teléfonos con altavoz. Después de recibir 'CALL_STATE_IDLE', quita el oyente y vuelve a desactivar los teléfonos con altavoz. – Force

+0

Intentaré e informaré aquí –

-1

descubrí que si añado el código en este orden siguiente funciona mejor para mí

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

mientras que el siguiente no funciona para mí si setSpeakerphoneOn (verdadero) en la primera línea:

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

2nd no funciona porque audioManager aún no está definido –

Cuestiones relacionadas