如何获取 Android 设备当前的媒体类型?

How to get the Android device current media type?

我在我的服务中使用 AudioManager 来控制媒体音量,但我只能控制我在 setStreamVolume() 中编写的媒体类型。我尝试使用 getRingerMode() 来获取媒体类型,但内容是我的服务。

int currentType = audioManager.getRingerMode();
int currentVoice = audioManager.getStreamVolume(currentType);

audioManager.setStreamVolume(currentType, currentVoice, AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);

如何控制其他应用的音量?

参考:

AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);


Button upButton = (Button) findViewById(R.id.upButton);
        upButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

//To increase media player volume               
                audioManager.adjustVolume(AudioManager.ADJUST_RAISE, AudioManager.FLAG_PLAY_SOUND);
            }
        });

        Button downButton = (Button) findViewById(R.id.downButton);
        downButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

//To decrease media player volume
                audioManager.adjustVolume(AudioManager.ADJUST_LOWER, AudioManager.FLAG_PLAY_SOUND);             
            }
        });

感谢 Dewey Reed 和 Ashvin solanki。 我从 Ashvin solanki 那里获得了灵感,而 Dewey Reed 帮助我阅读了 Android 来源。 要获取当前媒体类型,可以使用 adjustVolume() 并将 direction 值设置为 AudioManager.ADJUST_SAME。 例如 : audioManager.adjustVolume(AudioManager.ADJUST_SAME, AudioManager.FLAG_PLAY_SOUND| AudioManager.FLAG_SHOW_UI); 现在 AudioControl Window 显示,并具有当前媒体类型。