New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bluetoothイヤホンのリモコン機能で操作ができない #139
Comments
問合せ385も同件✍️ |
ボタンのイベントは以下で取れそう 関連:MediaControls(Android11からサポートされた新しい機能) なんかとても勉強になるページを見つけた |
公式によると、MediaSessionを使ってるのであればonStartCommandでMediaButtonReceiverと紐づけてしまえばMediaSessionCompat.Callbackと紐づいてくれるみたい。
ただ、はやえもんはAndroid13(SDK 33)以降でのみMediaSessionCompatを使っているのでAndroid 12以前はMediaButtonReceiverを直接利用したほうが実装影響少なさそう。
|
単純にMediaButtonReceiverを使うとAndroid13以降でMediaSessionの処理と競合してバグることがわかった。 |
有線イヤホン使ってAmazon Musicと振る舞い比較してみた。 ・Amazon Music ・ハヤえもん |
古そうだけどこれを見てみる |
単純にMainActivityのonKeyDownに追加してみれば実は動くのでは。。。 @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyCode == KeyEvent.KEYCODE_MEDIA_PAUSE || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) {
PlaylistFragment.onPlayBtnClick();
return true;
}
if (keyCode == KeyEvent.KEYCODE_MEDIA_REWIND) {
PlaylistFragment.onRewindBtnClick();
return true;
}
if (keyCode == KeyEvent.KEYCODE_MEDIA_NEXT) {
PlaylistFragment.onForwardBtnClick();
return true;
} ForegroundServiceのonHandleIntetに以下を入れればAndroid13(API33)以上はいける? if (Build.VERSION.SDK_INT >= 33) {
MediaButtonReceiver.handleIntent(mediaSession, intent);
} |
いったんonKeyDownの方試してみたけど動かず✍️ |
onHandleIntetの方も動かず✍️ |
ぐぬぬ…ダメでしたか〜 |
結局動作で調べ倒したところ、MediaSessionCompat.CallbackのonMediaButtonEventがまともに動いてない気がした。 |
「139-MediaBrowserお試し」、実機のAndroid 13環境で試してみたところうまくいってそう…! ◆アプリを起動 ◆アプリをバックグラウンドにする |
おそらく有線イヤホンのリモコンも同じかと思われますが、再生/一時停止等をしてもハヤえもんの操作ができず、別アプリが起動してそれを操作してしまいます
The text was updated successfully, but these errors were encountered: