В настоящее время мне нужно зафиксировать момент, когда начинается исходящий звонок. Согласно Abeer Ahmad в "Как определить состояние звонка исходящего вызова в android" , решение чтобы определить изменение частоты испускаемого звука (от 0 до значения, соответствующего кольцу), используя класс Visualizer. Однако во время совершения вызова не регистрируется значение частоты, отличное от 0 (тишина). Это не соответствует тому, что происходит, когда мобильный телефон излучает другой звук, такой как воспроизведение звуковой дорожки, где обнаружены значения частоты. Может ли кто-нибудь помочь мне или дать мне альтернативное решение?
Вот мой код:
mVisualizer = new Visualizer(0);
mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
Visualizer.OnDataCaptureListener listener = new Visualizer.OnDataCaptureListener(){
                    @Override
                    public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) { }
                    @Override
                    public void onFftDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) {
                        for (int i=0;i<bytes.length;i++) {
                            if (bytes[i] != 0) {
                              Log.i("INFO","FREQUENCY:"+bytes[i]);
                                break;
                            }
                        }
                    }
                };
mVisualizer.setDataCaptureListener(listener, Visualizer.getMaxCaptureRate() / 2, true, true);
Я использую Android Jellybean (API 17).