2010-11-16 17 views

Respuesta

6

No puede grabar una conversación telefónica en Android. Las secuencias están en el sistema operativo de nivel inferior y no son accesibles en el nivel de aplicación. Lo siento.

+1

¿Cómo funcionan aplicaciones como Automatic Call Recorder y otras? Funcionan incluso sin una raíz. – Zax

+0

¿Cómo lo hacen? – motis10

1

Tengo miedo de saber que Android no tiene una API nativa para grabar llamadas de voz. incluso las secuencias se abstraen en el sistema operativo y son inaccesibles en la capa de aplicación, como afirmó Emmanuel hase. Lo considero un error grave de Android Devs. si un muro de seguridad tiene un pequeño agujero ya no es seguro. Entonces, incluso si el droide restringe o intenta restringir, existen otros teléfonos donde uno puede tener ese tipo de funcionalidad. incluso un núcleo de droides personalizado puede tener ese tipo de funcionalidad. Esto solo hace que los usuarios de droides no sean nada más.

6

Hasta donde yo sé, todas las aplicaciones que graban llamadas de voz en Android tienen el mismo problema: solo funcionan en algunos teléfonos, mientras que en otros teléfonos solo puede escuchar un lado de la conversación. Algunas de estas aplicaciones intentan resolver este problema grabando también desde el micrófono.

Si tiene permisos de raíz en su teléfono Android, entonces creo que hay aplicaciones que funcionan mejor porque tienen acceso a las transmisiones de nivel inferior, como lo especificó Emmanuel en su respuesta.

+0

+1 para guiar ... gracias ... – Hulk

5

No sé si es posible, pero por lo que la API va

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 

esta línea compila bien en mi código donde registrador es un objeto de MediaRecorder y yo una vez estaba trabajando en estos proyectos, pero más tarde el proyecto fue volcado así que no estoy seguro de si funciona o no

2

La API es aparentemente there, pero los fabricantes han desactivado el firmware de su radio de poder hacer esto.

2

Depende del teléfono al teléfono p. No puede grabar una llamada en teléfonos Nexus y Motorola ya que no permiten la grabación desde el micrófono hasta que la llamada está en marcha. Pero la misma grabación de micrófono mientras está en funcionamiento funciona en la mayoría de los dispositivos Samsung y Galaxy.

10

sí es posible hacer esto simplemente

final MediaRecorder callrecorder = new MediaRecorder(); 
callrecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 
callrecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
callrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

callrecorder.setOutputFile(filepath); 

try { 
    callrecorder.prepare(); 
} catch (IllegalStateException e) { 
    System.out.println("An IllegalStateException has occured in prepare!"); 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} catch (IOException e) { 

    //throwing I/O Exception 
    System.out.println("An IOException has occured in prepare!"); 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

try { 
    callrecorder.start(); 
} catch(IllegalStateException e) { 
    e.printStackTrace(); 
    //Here it is thorowing illegal State exception 
    System.out.println("An IllegalStateException has occured in start!"); 
} 

para detener puede utilizar

callrecoder.stop(); 
+0

Recibo la excepción "setAudioSource failed" en 2 dispositivos: Galaxy S3 y Xperia Arc S. – Yar

+0

upvoted para 'MediaRecorder.AudioSource.VOICE_CALL' en lugar de' MediaRecorder.AudioSource.VOICE_COMMUNICATION' –

+1

recibo este error MediaRecorder: inicio fallido: -2147483648 –