RokidGlass/glass2-docs

关于x-craft的旋钮点击事件

Opened this issue · 14 comments

请问x-craft的旋钮点击会触发系统里的什么事件。怎么样才能监听到点击呢

你好,旋钮点击与转动事件监听示例代码如下:
@OverRide
public boolean onKeyUp(int keyCode, KeyEvent event) {
Logger.d(TAG, "onKeyUp keyCode: " + keyCode);

switch (keyCode) {
	case KeyEvent.KEYCODE_DPAD_CENTER:
		//旋钮点击
		break;
	case KeyEvent.KEYCODE_DPAD_LEFT:
		//旋钮向后转动
		break;
	case KeyEvent.KEYCODE_DPAD_RIGHT:
		//旋钮向前转动
		break;
	default:
		break;

}

你好,旋钮点击与转动事件监听示例代码如下:
@OverRide
public boolean onKeyUp(int keyCode, KeyEvent event) {
Logger.d(TAG, "onKeyUp keyCode: " + keyCode);

switch (keyCode) {
	case KeyEvent.KEYCODE_DPAD_CENTER:
		//旋钮点击
		break;
	case KeyEvent.KEYCODE_DPAD_LEFT:
		//旋钮向后转动
		break;
	case KeyEvent.KEYCODE_DPAD_RIGHT:
		//旋钮向前转动
		break;
	default:
		break;

}

前后转动都能触发事件,但是旋钮点击事件无法触发

麻烦提供下系统版本号,如果有新的版本建议更新后再尝试。
如果还是不行,可以代码贴出来看看

你好,旋钮点击与转动事件监听示例代码如下:
@OverRide
public boolean onKeyUp(int keyCode, KeyEvent event) {
Logger.d(TAG, "onKeyUp keyCode: " + keyCode);

switch (keyCode) {
	case KeyEvent.KEYCODE_DPAD_CENTER:
		//旋钮点击
		break;
	case KeyEvent.KEYCODE_DPAD_LEFT:
		//旋钮向后转动
		break;
	case KeyEvent.KEYCODE_DPAD_RIGHT:
		//旋钮向前转动
		break;
	default:
		break;

}

前后转动都能触发事件,但是旋钮点击事件无法触发

launcher的各个应用 可以通过旋转按钮点击吗?

你好,旋钮点击与转动事件监听示例代码如下:
@OverRide
public boolean onKeyUp(int keyCode, KeyEvent event) {
Logger.d(TAG, "onKeyUp keyCode: " + keyCode);

switch (keyCode) {
	case KeyEvent.KEYCODE_DPAD_CENTER:
		//旋钮点击
		break;
	case KeyEvent.KEYCODE_DPAD_LEFT:
		//旋钮向后转动
		break;
	case KeyEvent.KEYCODE_DPAD_RIGHT:
		//旋钮向前转动
		break;
	default:
		break;

}

前后转动都能触发事件,但是旋钮点击事件无法触发

launcher的各个应用 可以通过旋转按钮点击吗?

可以的

好 那就不是硬件问题了

麻烦提供下系统版本号,如果有新的版本建议更新后再尝试。
如果还是不行,可以代码贴出来看看

更新了过后还是不行
现在的版本号是:2.0.2-20210716-502102

代码如下:
@OverRide
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.e(TAG, "onKeyUp keyCode: " + keyCode);
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
//旋钮点击
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
//旋钮向后转动
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
//旋钮向前转动
break;
default:
break;
}
return super.onKeyUp(keyCode, event);
}

Log.e(TAG, "onKeyUp keyCode: " + keyCode);
这个日志信息有打印吗,正常情况点击事件会打印23:
public static final int KEYCODE_DPAD_CENTER = 23;

Log.e(TAG, "onKeyUp keyCode: " + keyCode);
这个日志信息有打印吗,正常情况点击事件会打印23:
public static final int KEYCODE_DPAD_CENTER = 23;

旋钮按了之后什么事件都没有

Log.e(TAG, "onKeyUp keyCode: " + keyCode);
这个日志信息有打印吗,正常情况点击事件会打印23:
public static final int KEYCODE_DPAD_CENTER = 23;

现在这个情况问题是出在什么地方呢?

看下点击Launcher上的图标,或者进入其他应用,旋钮点击是否正常?

看下点击Launcher上的图标,或者进入其他应用,旋钮点击是否正常?

在其他地方使用时正常的,就是在自己的程序里面触发不了函数

那需要看下具体代码,比如控件的onClick监听、focusable属性设置,可能有关系

那需要看下具体代码,比如控件的onClick监听、focusable属性设置,可能有关系

那我明白了,就是其他控件拦截了旋钮的点击事件,谢谢你的帮助