Как открыть встроенный эквалайзер программно в 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)
метод запустите панель управления, чтобы указать имя пакета и используется приложением панели управления для отслеживания изменений это конкретное приложение.