我创建了谷歌眼镜的一项基本活动,但不会允许我使用标准的向下滑动即可返回在堆栈上一个活动。 我试着给活动的焦点,此代码:
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.layout_orienation_detection_activity);
mView = getWindow().getDecorView().findViewById(android.R.id.content);
mView.setFocusable(true);
mView.setFocusableInTouchMode(true);
}
@Override
protected void onStart() {
super.onStart();
mGestureDetector = createGestureDetector(this);
serviceIntent = new Intent(this, SensorService.class);
startService(serviceIntent);
mView.requestFocus();
}
我也试着创建使用的onkeydown()方法,我自己倒刷卡功能,我已经尝试创建两个TAP和SWIPE_DOWN,然后将完成()手势检测到它们各自的回调。 我的姿态和关键检测代码看起来完全一样,在谷歌开发者网站上的代码在https://developers.google.com/glass/develop/gdk/touch ,但仍没有任何工程。 我想这不应该是必要的,反正,因为玻璃的标准回刷卡应该反正工作。
我不知道这有什么关系呢,但我的活动开始的服务。
此外,有时它的工作原理,我第一次安装应用程序后,但随后停止后立即工作。
有没有人有任何想法,问题是什么? 这不得不关闭玻璃设备或等待屏幕以退出活动超时非常令人沮丧。
编辑:这个问题是从开始的活动相关的服务,因为当我删除了我的活动startService(意向)调用,向下刷卡罚款。 因此,如何我还可以运行后台服务,而且还能够降低刷卡?
欢迎在谷歌玻璃做的事情 - 在没有一切正常,因为它应该。 我有问题摆,但已经找到了一些一些解决方法。 无论哪种方式,建立了第一个手势检测是棘手的,当我这样做是为了。 我会为您提供我已经把现在的玻璃应用我做了运行的两个工作方案。
威盛的onkeydown():
import android.view.KeyEvent;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if( keyCode == KeyEvent.KEYCODE_BACK ) {
// handles swipe down
return true;
}
else if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
// handles tap
return true;
}
return false;
}
设置手势检测是棘手,但它看起来像你缺少你从什么张贴了大量的代码。 下面是我在应用的手势检测,现在的工作,生病仅仅包括相关位:
import android.view.MotionEvent;
import com.google.android.glass.touchpad.Gesture;
import com.google.android.glass.touchpad.GestureDetector;
private GestureDetector mGestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
//instantiate the gesture detector
mGestureDetector = createGestureDetector(this);
}
// Actually create the gesture detector
private GestureDetector createGestureDetector(Context context) {
GestureDetector gestureDetector = new GestureDetector(context);
gestureDetector.setBaseListener( new GestureDetector.BaseListener() {
@Override
public boolean onGesture(Gesture gesture) {
if (gesture == Gesture.SWIPE_RIGHT) {
// pickup right swipe
return true;
} else if (gesture == Gesture.SWIPE_LEFT) {
// pickup left swipe
return true;
} else if (gesture == Gesture.SWIPE_DOWN) {
// pickup down swipe
return true;
} else if (gesture == Gesture.TAP) {
// pickup tap
return true;
}
return false;
}
});
return gestureDetector;
}
//Send generic motion events to the gesture detector
@Override
public boolean onGenericMotionEvent(MotionEvent event) {
if (mGestureDetector != null) {
return mGestureDetector.onMotionEvent(event);
}
return false;
}
至于你说这句话:
Also, sometimes it works the first time after I install the application, but then it stops working immediately after that.
我曾经历过,我现在还在目前正在设法解决类似的问题。 它很难解决,虽然不知道更多。 您是否尝试过更新玻璃上的固件? 检查其最新的,否则还有什么是你的代码做什么? 也许你有杂耍状态信息什么的,如果你的活动之间切换的问题? 只是一个猜测..
注 :手势检测和左,右刷卡关键事件是在玻璃破碎,如果你正在做一个MediaPlayer的osmething例如。 我们在一段代码创建一个VideoView,并且只能检测轻扫,然后敲击,没有别的,但我们遇到此在是利用VideoView / MediaPlayer的一个代码块时只。