2012-05-11 11 views
27

He estado trabajando en un proyecto que se beneficiaría enormemente de la modificación de la transmisión de llamadas. Esto ha sido repetidamente dicho/asumido como inalcanzable, ya que la mayoría de la gente cree que el circuito de hardware para el audio de la llamada está completamente desconectado de la MCU principal del dispositivo.Modificación de transmisión de audio de llamada en Android 4.0 ICS

Preguntas como Stream audio to a phone call Android han recibido respuestas que indican que es imposible acceder al audio. Estoy de acuerdo en que esto es definitivamente imposible desde la API de Android, pero no está del todo claro si el hardware REALMENTE está desconectado por completo. El usuario de stackoverflow 'artsylar' dijo que podían modificar la 'capa de infraestructura' del sistema operativo Android para inyectar audio grabado en las secuencias de llamadas, lo que sería un gran paso adelante (consulte Play an audio clip onto an ongoing call, comentario de artsylar sobre la respuesta seleccionada).) Asumiendo que el éxito de artsylar es válido, definitivamente hay una manera de controlar el audio de la transmisión de llamadas modificando el marco (supongo que el marco de base de telefonía en la fuente de Android).

Básicamente, estoy completamente de acuerdo en que modificar o controlar el flujo de llamadas es imposible desde la capa de aplicación. Sin embargo, estoy interesado en personalizar el sistema operativo Android en el marco o la capa de interfaz de radio; artsylar parece haber tenido éxito, pero no hay explicación en la literatura abierta sobre cómo. Dado el estado actual de la tecnología Android, ¿alguien podría aclarar lo anterior para establecer realmente si controlar el audio de las llamadas es posible mediante la modificación del sistema operativo Android central, y un buen camino para lograr este objetivo?

Creo que una aclaración final sobre este tema sería de gran valor para la comunidad de código abierto.

Gracias!

+1

¿Ha logrado modificar el flujo de llamadas? – B770

+1

¿Cuál es el estado actual de su investigación? –

Respuesta

5

Es muy difícil hacerlo porque se relaciona con el manejo de Kernal de Linux dentro del sistema operativo Android.

No solo no hay soporte de API, sino que también el problema de seguridad no está permitido.

Al ser un profesional en el campo de la ingeniería de software, especialmente los programadores, nunca suponemos que alguien haya tenido éxito en la invención y el proyecto relacionado es válido hasta que se pruebe el proyecto.

también el streaming del audio durante la llamada puede invocar el tema de la privacidad y la cuestión de la seguridad entre los usuarios de teléfonos inteligentes y el proveedor de servicios de telefonía

+1

kernel de Linux? No. El soporte de hardware también es esencial, porque los teléfonos usan (micro -> procesador de banda base, micro -> OS) de doble cadena, y no (micro -> OS -> banda de base, como se puede esperar). –

+0

@ kagali-san si dices que es como "micro -> procesador de banda base", ¿cómo funcionan los auriculares Bluetooth? Así que no creo que tengas razón, es más como "micrófono -> sistema operativo -> banda base". –

+3

@ André, está poco documentado, pero no, las transferencias Bluetooth funcionan también mediante transferencias en chip. Puede googlear un montón de pocas hojas de datos y esquemas/esquemas de bloque de chino MT6575, MT6589 y los correspondientes chips de radio MT6627, MT6627 - Sospecho que el canal MRGPCM entre los chips es la ruta de transferencia de audio. También hay algo llamado DAIBT, que los chinos usan en algunos esquemas para designar partes de procesamiento de sonido. Más que decir, algunos teléfonos no están reflejando incluso el audio del micrófono enviado a la banda base en la llamada. –

11

Es técnicamente posible inyectar audio en el enlace ascendente llamada de voz en algunas plataformas (Qualcomm MSM8960 y APQ8064, por ejemplo). Existe soporte en el nivel del hardware y en el nivel del controlador del dispositivo. Pero para que esa funcionalidad esté disponible para las aplicaciones normales, debería crear una ROM de Android personalizada en la que haya agregado todas las partes de espacio de usuario necesarias tanto en las capas de Java como en las nativas de Android.

Así que la respuesta corta es: no, no hay una forma estándar de hacerlo como desarrollador de aplicaciones (no importa si usa SDK o NDK).
Si está trabajando para un OEM o si por algún otro medio puede construir y actualizar sus propias ROM de Android, probablemente pueda obtener la información que necesita preguntándole a su proveedor de la plataforma.

Cuestiones relacionadas