Android AudioRecord - Как разрешить звонки

Я построил приложение, которое слушает фоновый шум. Однако я обнаружил, что при прослушивании пользователь не может совершать звонки или использовать любое другое приложение, которое записывает звук. Мне интересно, есть ли способ разрешить запись звука или отключить звук во время разговора? Как это будет достигнуто?

2 ответа

Нет.

Такие вещи, как запись звука, нельзя выполнять одновременно с двумя приложениями (не в соответствии с рекомендациями Google Play). Это означает, что вы должны слушать, когда другое приложение хочет MediaRecorderили когда намерение телефонного звонка отправлено в операционную систему, и отпустите его. Вы также можете просто прослушивать состояние вызова устройств.

Вы можете использовать TelephonyManager для прослушивания:

public class PhoneListener extends PhoneStateListener {
    private Context context;

    public PhoneListener(Context c) {
        context = c;
    }

    public void onCallStateChanged (int state, String incomingNumber) {
        switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:
                break;
            case TelephonyManager.CALL_STATE_RINGING:
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                break;
        }
    }
}

Вы должны посмотреть на это для более подробной информации: /questions/13140945/kak-obnaruzhit-vhodyaschie-zvonki-na-ustrojstve-android/13140971#13140971

Вы можете попытаться закрыть приложение во время звонка или иметь кнопку, которая на некоторое время активирует режим сна:

Фрагмент кода сна: public void run() { try { Thread.sleep(300000); // Код} catch (Exception e) { e.getLocalizedMessage(); } }

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