Как отключить поток телефонных звонков (uplink) при звонках на Android

Я никогда не задавал вопросов - всегда мог найти материал, но на этот раз я действительно не знаю, даже где копать.

Я пытаюсь отключить входящий восходящий поток (во время разговора с кем-то) и воспроизвести звук в это время через телефонный звонок-динамик.

Нет проблем с воспроизведением звука, но с приглушением потока это так. Вот что я попробовал:

1) Java Reflection для вызова методов внутреннего класса Android Telephony.

Вот блог авторов (Prasanta Paul): http://prasanta-paul.blogspot.com/2010/09/call-control-in-android.html И его виджет: http://code.google.com/p/phoneaway/

Я пытался изменить закомментированные функции в ITelephony.aidl, чтобы отключить поток вызовов, но это не сработало - "нет такой процедуры..."

2) получить поток через AudioManager

audioManager.setStreamMute(AudioManager.STREAM_SYSTEM, true);
audioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, true);
audioManager.setStreamMute(AudioManager.STREAM_DTMF, true);
audioManager.setStreamMute(AudioManager.STREAM_ALARM, true);
audioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);
audioManager.setStreamMute(AudioManager.STREAM_RING, true);

а также

audioManager.setStreamSolo(AudioManager.STREAM_MUSIC, true);

Это не делает ничего для восходящего потока вызовов. Даже на рутированном телефоне.

3) В сети есть несколько статей и jar о реализации скрытого API. Нет статей, чтобы ответить, как отключить поток телефонных звонков.

Существует множество приложений, в которых используются недокументированные функции и функции, требующие root-доступа. Мне очень интересно, как люди нашли эти скрытые функции и как их использовать. Я не нашел ни одного из них, чтобы отключить звук.

Android ver: 2.2

Устройство: Samsung i5500

Если у вас есть идеи, как осуществить приглушение телефонного звонка - ответьте.

PS: если subj невозможен на стандартном телефоне, скажите, пожалуйста, как это сделать с root-доступом

0 ответов

Другие вопросы по тегам