Как открыть встроенный эквалайзер программно в Android?

Я видел много приложений, открывающих системы в встроенном эквалайзере (google play music, Spotify, Samsung stock music player). Напрямую, без необходимости писать свои с нуля. Как эти приложения делают это? Я не мог найти решение.

} else if (id == R.id.action_fx) {
        Intent intent = new Intent();
        intent.setAction("android.media.action.DISPLAY_AUDIO_EFFECT_CONTROL_PANEL");
        if ((intent.resolveActivity(getPackageManager()) != null)) {
            startActivity(intent);
        } else {
            Intent intent11 = new Intent(MainActivity.this, Help.class);
            intent11.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            startActivity(intent11);
            // No equalizer found :(
        }
        return true;

1 ответов


следующее должно работать, чтобы запустить эквалайзер по умолчанию Activity:

Intent intent = new Intent(AudioEffect
    .ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL);

if ((intent.resolveActivity(getPackageManager()) != null)) {
    startActivityForResult(intent, REQUEST_EQ);
} else {
    // No equalizer found :(
}

Spotify делает то же самое в основном, не проверил другие.

необходимость startActivityForResult() объясняется docs:

намерение несет в себе ряд дополнений в приложение плеер для передачи необходимой информации на панель управления приложение.

вызывающее приложение должно использовать android.app.Activity#startActivityForResult(Intent, int) метод запустите панель управления, чтобы указать имя пакета и используется приложением панели управления для отслеживания изменений это конкретное приложение.