Android 耳机线控问题,想用 MediaSession 拦截耳机按钮的点击事件然后 发条广播

野生的洛天依 2020-01-15 11:26:05
具体怎么操作呢??? 网上都是 session + browser +browserService+Controller 一起用的, 我不用这么复杂 ,我只想单纯的 拦截 耳机的点击事件 发个广播, 打开个activity什么的, 不用播放音乐什么的 求大佬指点迷津 ,分很少, 发几张 天依的图给看看 Android
...全文
565 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
野生的洛天依 2020-01-15
  • 打赏
  • 举报
回复
解决了

mSession = new MediaSessionCompat(this, "MusicService");
mSession.setCallback(new MediaSessionCompat.Callback() {
@Override
public boolean onMediaButtonEvent(Intent mediaButtonEvent) {
String intenAction = mediaButtonEvent.getAction();

if (intenAction.equals(Intent.ACTION_MEDIA_BUTTON)) {

KeyEvent event = mediaButtonEvent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event != null) {
int action = event.getAction();
if (action == KeyEvent.ACTION_DOWN) {

int keyCode = event.getKeyCode();
LogUtil.d("---- MediaSession event.getKeyCode() = " + event.getKeyCode());

switch (keyCode) {
case KeyEvent.KEYCODE_HEADSETHOOK:

LogUtil.d("---- MediaSession 普通耳机 播放/暂停 keyCode = " + KeyEvent.KEYCODE_HEADSETHOOK);

break;

case KeyEvent.KEYCODE_MEDIA_PLAY:

LogUtil.d("---- MediaSession 蓝牙耳机 播放 keyCode = " + KeyEvent.KEYCODE_MEDIA_PLAY);

break;

case KeyEvent.KEYCODE_MEDIA_PAUSE:

LogUtil.d("---- MediaSession 蓝牙耳机 暂停 keyCode = " + KeyEvent.KEYCODE_MEDIA_PAUSE);

break;

case KeyEvent.KEYCODE_MEDIA_NEXT:

LogUtil.d("---- MediaSession 蓝牙耳机 下一曲 keyCode = " + KeyEvent.KEYCODE_MEDIA_NEXT);


break;

case KeyEvent.KEYCODE_MEDIA_PREVIOUS:

LogUtil.d("---- MediaSession 蓝牙耳机 上一曲 keyCode = " + KeyEvent.KEYCODE_MEDIA_PREVIOUS);

break;
}

}
}

}
return super.onMediaButtonEvent(mediaButtonEvent);
}

});

mSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | //FLAG_HANDLES_MEDIA_BUTTONS 控制媒体按钮
MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS); //FLAG_HANDLES_TRANSPORT_CONTROLS 控制传输命令

mSession.setActive(true); //激活
// mSession.release(); //退出时需要销毁
//mSession.setPlaybackState(state); //最重要 //更新播放状态和歌曲信息
//mSession.setMetadata(MediaMetadataCompat  metadata); //media_session的服务,可通过命令查看系统当前的服务信息 adb shell dumpsys media_session

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧