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

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

分类: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

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