社区
Android
帖子详情
Android 耳机线控问题,想用 MediaSession 拦截耳机按钮的点击事件然后 发条广播
野生的洛天依
2020-01-15 11:26:05
具体怎么操作呢???
网上都是 session + browser +browserService+Controller 一起用的,
我不用这么复杂 ,我只想单纯的 拦截 耳机的点击事件 发个广播, 打开个activity什么的, 不用播放音乐什么的 求大佬指点迷津 ,分很少, 发几张 天依的图给看看 Android
...全文
565
1
打赏
收藏
Android 耳机线控问题,想用 MediaSession 拦截耳机按钮的点击事件然后 发条广播
具体怎么操作呢??? 网上都是 session + browser +browserService+Controller 一起用的, 我不用这么复杂 ,我只想单纯的 拦截 耳机的点击事件 发个广播, 打开个activity什么的, 不用播放音乐什么的 求大佬指点迷津 ,分很少, 发几张 天依的图给看看 Android
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
Android
利用
广播
实现
耳机
的线
控
借助
广播
来实现单
按钮
耳机
的线
控
,能够识别单击和双击 代码讲解在我的博客里: http://blog.csdn.net/illidantao/article/details/16847909
苹果线
控
耳机
电路图
苹果线
控
耳机
端电路图,提供给爱好者参考.如有错误请指正.
荣耀3C-线
控
耳机
:接线图.jpg
线
控
耳机
接线 华为
耳机
荣耀
耳机
荣耀3C-线
控
耳机
:接线图
Apple线
控
耳机
电路
少有的Apple线
控
内部电路图。有兴趣了解Apple线
控
原理的同学可以看看。
HeadsetControlsPC:为PC提供3.5mm
耳机
线
控
支持
耳机
控
制 为PC提供3.5mm
耳机
线
控
支持。 Python> = 3.6 项目总体严重缺乏测试,不同设备,不同
耳机
很可能有不同表现。 目录 介绍 通过分析
耳机
上不同
按钮
在不同时刻对具有TRRS接口PC设备的麦克风两个声道造成的不同影响来提供
耳机
线
控
支持。 更具体的实现方式可以转到入门阅读。 安装 以下两种方式都需要联网,会自动安装依赖包keyboard , numpy和sounddevice 。 聚酰亚胺 通过安装: pip install trrsheadset 克隆 或者,从下载在GitHub仓库中的压缩包,解压到一个记得住位置的地方。 这种安装方式目前有一个错误( ),安装前需要根据您使用的命令行环境设置环境变量PYTHONUTF8=1 : PowerShell: $env:PYTHONUTF8=1 壳牌: export PYTHONUTF8=1 CMD: set PYT
Android
80,350
社区成员
91,288
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章