Android监听蓝牙耳机的按键事件 蓝牙无法响应KeyEvent监听不到

阅读: 评论:0

Android监听蓝牙耳机的按键事件   蓝牙无法响应KeyEvent监听不到

Android监听蓝牙耳机的按键事件 蓝牙无法响应KeyEvent监听不到

需求:蓝牙耳机的按键事件,暂停/播放 音频/视频 ,无法响应蓝牙KeyEvent的事件

此问题是由于中的蓝牙KeyEvent监听不到导致的,可以通过以下方法监听蓝牙按键事件

    private MediaSession mSession;
    //在OnResume中使用createMediaSession()方法create
    private void createMediaSession() {
        Log.v(TAG, "createMediaSession() mSession= " + mSession);
        if (mSession == null) {
            mSession = new MediaSession(mContext, SimpleName());
            mSession.setCallback(mSessionCallback);
            mSession.setFlags(MediaSession.FLAG_HANDLES_MEDIA_BUTTONS);
            mSession.setActive(true);
        }
    }

    //在OnPause中使用releaseMediaSession()方法release
    private void releaseMediaSession() {
        Log.v(TAG, "releaseMediaSession() mSession=" + mSession);
        if (mSession != null) {
            mSession.setCallback(null);
            mSession.setActive(false);
            lease();
            mSession = null;
        }
    }

    private final MediaSession.Callback mSessionCallback = new MediaSession.Callback() {
        @Override
        public boolean onMediaButtonEvent(Intent mediaIntent) {
            if (mSession == null || mediaIntent == null) {
                Log.v(TAG, "SessionCallback mSession= " + mSession + "mediaIntent= " + mediaIntent);
                return false;
            }
            if (Intent.ACTION_MEDIA_BUTTON.Action())) {
                KeyEvent event = (KeyEvent) ParcelableExtra(Intent.EXTRA_KEY_EVENT);
                Log.v(TAG, "SessionCallback event= " + event);
                if (event != null && Action() == KeyEvent.ACTION_DOWN) {
                    KeyCode(),event);
                    KeyCode(),event);
                    return true;
                }
            }
            return false;
        }

    };

这样就可以响应onKeyUp(); 或 onKeyDown();

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {Log.d(TAG, "onKeyUp() keycode=" + keyCode);

   switch (keyCode) {case KeyEvent.KEYCODE_MEDIA_PAUSE://暂停
        return true;

  case KeyEvent.KEYCODE_MEDIA_PLAY: //播放 return true; } KeyUp(keyCode, event);}

并且需要在    添加权限

<uses-permission android:name="android.permission.BLUETOOTH"/>

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

 <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/>


本文发布于:2024-02-03 07:45:39,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170691753949626.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:蓝牙   按键   蓝牙耳机   事件   Android
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23