我无法获得KEY_EVENT

时间:2015-11-16 14:27:07

标签: sony sony-smarteyeglass

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

  

“onReceive: com.sonyericsson.extras.aef.control.KEY_EVENT ”   而不是我收到“onReceive: com.sonyericsson.extras.aef.control.TOUCH_EVENT ”和“onReceive: com.sonyericsson.extras.aef.control .PAUSE “和”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();
    }

}

1 个答案:

答案 0 :(得分:0)

您可以使用HelloEvents示例快速查看KeyEvent for back按钮。

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

  1. 有" controlInterceptsBackButton"覆盖方法 注册信息类。
  2. @覆盖 public boolean controlInterceptsBackButton(){     返回true; }

    1. 在清单中加载KeyEvent

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

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