Gop*_*hna 5 android android-intent android-mediaplayer android-activity android-audiomanager
在按下耳机时需要将我的应用程序带到前台为此我使用 registerMediaButtonEventReceiver() 方法,它在 android os 5.1 以下设备上工作正常。现在此方法在 API 级别 21 中已弃用。我正在使用 mediasession.setMediaButtonReciever() 来获得高优先级,但它不起作用。
AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
ComponentName mediaComponent = new ComponentName(context.getPackageName(), HeadsetReceiver.class.getName());
mAudioManager.registerMediaButtonEventReceiver(mediaComponent);
mediaHandler.postDelayed(this, 1000L);
Run Code Online (Sandbox Code Playgroud)
我每 1 秒发布一次以获取我的优先应用程序。我在 5.1 中使用此代码,但按下媒体按钮音乐开始。我的应用程序没有收到任何将应用程序带到前台的事件。提前致谢..
MediaSession mSession = new MediaSession(context,context.getPackageName());
Intent intent = new Intent(context, HeadsetReceiver.class);
PendingIntent pintent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mSession.setMediaButtonReceiver(pintent);
mSession.setActive(true);
mediaHandler.postDelayed(this, 1000L);
Run Code Online (Sandbox Code Playgroud)
您还必须像这样设置 PlaybackState:
PlaybackState state = new PlaybackState.Builder()
.setActions(PlaybackStateCompat.ACTION_FAST_FORWARD | PlaybackStateCompat.ACTION_PAUSE | PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_PLAY_PAUSE | PlaybackStateCompat.ACTION_SKIP_TO_NEXT | PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS | PlaybackStateCompat.ACTION_STOP)
.setState(PlaybackStateCompat.STATE_PLAYING, 0, 1, SystemClock.elapsedRealtime())
.build();
mSession.setPlaybackState(state);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5254 次 |
| 最近记录: |