如何在Android中以编程方式打开内置均衡器?

abb*_*bie 7 android equalizer

我见过很多应用程序在内置均衡器(谷歌播放音乐,Spotify,三星股票音乐播放器)中打开系统.直接,无需从头开始编写自己的.这些应用程序如何做到这一点?我找不到解决方案.

} 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;
Run Code Online (Sandbox Code Playgroud)

ear*_*jim 7

以下应该可以启动默认均衡器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 :(
}
Run Code Online (Sandbox Code Playgroud)

Spotify基本上做了同样的事情,没有检查过其他人.

文档中startActivityForResult()解释了必要性:

意图携带玩家应用程序使用的许多附加内容,以将必要的信息传递给控制面板应用程序.

调用应用程序必须使用该 android.app.Activity#startActivityForResult(Intent, int)方法启动控制面板,以便控制面板应用程序指示并使用其包名称来跟踪此特定应用程序的更改.