我强烈怀疑有任何公共API可以告诉你哪个应用程序目前关注焦点.

您可以通过请求来跟踪您的应用是否具有音频焦点,例如:

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

boolean requestGranted = AudioManager.AUDIOFOCUS_REQUEST_GRANTED == audioManager.requestAudioFocus(listener, AudioManager.STREAM_MUSIC,

AudioManager.AUDIOFOCUS_GAIN);

if(requestGranted){

// you now has the audio focus

}

您应该确保在请求和放弃焦点时维护一个侦听器实例,see my answer here以解决音频焦点的常见问题

以下是onAudioFocusChange()的示例:

@Override

public void onAudioFocusChange(int focus) {

switch (focus) {

case AudioManager.AUDIOFOCUS_LOSS:

Log.d(TAG,"AUDIOFOCUS_LOSS");

// stop and release your player

break;

case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:

Log.d(TAG,"AUDIOFOCUS_LOSS_TRANSIENT");

// pause your player

break;

case AudioManager.AUDIOFOCUS_GAIN:

Log.d(TAG,"AUDIOFOCUS_GAIN");

// restore volume and resume player if needed

break;

case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:

Log.d(TAG,"AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK");

// Lower volume

break;

}

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐