具體怎么操作呢???

網上都是 session + browser +browserService+Controller 一起用的,
我不用這么復雜 ,我只想單純的 攔截 耳機的點擊事件 發個廣播, 打開個activity什么的, 不用播放音樂什么的求大佬指點迷津 ,分很少, 發幾張 天依的圖給看看
Android



uj5u.com熱心網友回復:
解決了 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/70954.html
標籤:Android
上一篇:android系統tts TextToSpeech原始碼原理決議及定制tts引擎
下一篇:IOS學習
