我试图通过使用头部手势来浏览我的Google Glass应用程序。我能够识别出左右上方的头部姿势。当识别出这个手势时,他们每个人都有自己的方法
现在我需要在每个方法中模拟相应的触摸手势。所以它会认为我向左或向右滑动,这样我就能用头部手势浏览卡片。
有没有人知道如何实现这个目标?
我创建了一个快速的hello world应用程序。我添加了我的头像代码,并开始尝试让密钥正常工作。
我在myCreate()
中添加了以下内容Instrumentation instr = new Instrumentation();
然后我将以下几行添加到每个相应的headgesture方法中。
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER)
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_LEFT);
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_RIGHT);
他们现在正在作出相应的回应,但是我得到了例外说法:
java.lang.RuntimeException: This method can not be called from the main application thread
答案 0 :(得分:0)
最后,我的方向与我在上面编辑中提到的方向不同。
我发现可以使用
调用shell中的触控adb shell input keyevent <keycode here>
然后我找到了在android中使用它的方法,我有以下类名为issueKey
public class issueKey {
public void issueKey(int keyCode)
{
try {
java.lang.Process p = java.lang.Runtime.getRuntime().exec("input keyevent " + Integer.toString(keyCode) + "\n");
} catch (Exception e) {
Log.wtf("IssueKeyError", e.getMessage());
}
}
}
然后我只需调用该类并传递相应手势的键码
mIssueKey.issueKey(4);//functions as swipe down
以下是我为感兴趣的人测试的密钥代码列表。
然而,我现在想知道的是。什么是最佳实践,通过使用asyncTask获得我在编辑中提到的解决方案,或者是我目前正在使用的解决方案。
答案 1 :(得分:0)