我无法获得 KEY_EVENT

I can not get the KEY_EVENT

我正在参与一个使用 smarteyeglass 扩展增强现实应用程序的项目,但我遇到了问题。我不知道为什么当我按下智能眼镜上的后退按钮时我无法得到KEY_EVENT

"onReceive: com.sonyericsson.extras.aef.control.KEY_EVENT" instead of it i receive "onReceive: com.sonyericsson.extras.aef.control.TOUCH_EVENT" and "onReceive: com.sonyericsson.extras.aef.control.PAUSE" and "onReceive: com.sonyericsson.extras.aef.control.STOP".

所以我使用了示例代码 AdvancedLayouts 并且它有效。我不知道我做错了什么。获取按键事件的代码与AdvancedLayouts的按键事件代码相同

我在 AndroidManifest.xml

上添加了 Key_Event
@Override
public void onKey(final int action, final int keyCode, final long timeStamp) {

    if (action == Intents.KEY_ACTION_RELEASE && keyCode == Control.KeyCodes.KEYCODE_BACK) {
        Log.d(Constants.LOG_TAG, "onKey() - back button intercepted.");
        return;
    }

    if (!showingDetail) {
        stopRequest();
    }

}

您可以使用 HelloEvents 示例快速查看后退按钮的 KeyEvent。

如果您想在自己的项目中实现它,请检查您的项目中是否有以下实现。

  1. 有"controlInterceptsBackButton"覆盖方法 注册信息 class.

@Override public 布尔型 controlInterceptsBackButton() { return 是的; }

  1. 您的清单中有 KeyEvent

    <动作android:name="com.sonyericsson.extras.aef.control.KEY_EVENT"/>

  2. (可选)由于您的应用程序将接收后退按钮事件,因此您需要通过调用 stopRequest() 来处理应用程序退出。例如,当用户在应用程序的主菜单中并点击返回按钮时,AdvancedLayout 调用此退出方法。