r***@163.com
r***@163.com
  • 发布:2019-12-07 17:28
  • 更新:2020-12-03 16:28
  • 阅读:2559

调用蓝牙耳机的按键,或者有线耳机的按键方法?

分类:Native.js

需求是监听耳机(蓝牙或有线)上的按键,并且触发相应的事件,我来做处理。

问题1.
注册不上"<uses-permission android:name=\"android.permission.MEDIA_BUTTON\"/>"
(是否没有封装此注册?)

问题2.
监听不到事件,filter.addAction(Intent.ACTION_MEDIA_BUTTON);

问题3.
在监听事件处理当中。总是在KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);报错。

有谁做过同类需求。或者官方有关于MEDIA_BUTTON的帮助、实例之类的?

以下是完整代码实例
var receiver;
mui.plusReady(function() {
main = plus.android.runtimeMainActivity(); //获取activity

    // 广播接收  
    receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
        onReceive: function(context, intent) { //实现onReceiver回调函数  

            var Intent = plus.android.importClass('android.content.Intent');  
            var KeyEvent = plus.android.importClass('android.view.KeyEvent');  
            console.log(Intent.EXTRA_KEY_EVENT);  

            KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);  
            action = intent.getAction();  

            if (Intent.ACTION_MEDIA_BUTTON.equals(action)) {  
                // 获得按键码  
                int keycode = event.getKeyCode();  
                switch (keycode) {  
                    case KeyEvent.KEYCODE_MEDIA_NEXT:  
                        //播放下一首  
                        console.log("下一曲");  
                        break;  
                    case KeyEvent.KEYCODE_MEDIA_PREVIOUS:  
                        //播放上一首  
                        console.log("上一曲");  
                        break;  
                    case KeyEvent.KEYCODE_HEADSETHOOK:  
                        //中间按钮,暂停or播放  
                        console.log("播放/暂停");  
                        //可以通过发送一个新的广播通知正在播放的视频页面,暂停或者播放视频  
                        break;  
                    default:  
                        break;  
                }  
            }  

            //停止监听  
            //main.unregisterReceiver(receiver);  
        }  
    });  

    var IntentFilter = plus.android.importClass('android.content.IntentFilter');  
    var Intent = plus.android.importClass('android.content.Intent');  
    var filter = new IntentFilter();  
    filter.addAction(Intent.ACTION_MEDIA_BUTTON);  
    filter.addAction(Intent.ACTION_SCREEN_ON);  
    filter.addAction(Intent.ACTION_SCREEN_OFF);  
    filter.addAction(Intent.ACTION_USER_PRESENT);  
    main.registerReceiver(receiver, filter); //注册监听  
});
2019-12-07 17:28 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

请问您这个问题解决了吗

cnbany

cnbany - cnbany

同问,如何实现监听蓝牙耳机的按键

z***@qq.com

z***@qq.com

用这个插件试试:
https://ext.dcloud.net.cn/plugin?id=3577

该问题目前已经被锁定, 无法添加新回复