小编Gop*_*hna的帖子

registerMediaButtonEventReceiver 替代 setMediaButtonReceiver (PendingIntent mbr) 不起作用

在按下耳机时需要将我的应用程序带到前台为此我使用 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)

android android-intent android-mediaplayer android-activity android-audiomanager

5
推荐指数
1
解决办法
5254
查看次数