回到向左滑动不是在谷歌眼镜活动工作(Back Swipe not working in Google

2019-10-21 16:35发布

我创建了谷歌眼镜的一项基本活动,但不会允许我使用标准的向下滑动即可返回在堆栈上一个活动。 我试着给活动的焦点,此代码:

@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(意向)调用,向下刷卡罚款。 因此,如何我还可以运行后台服务,而且还能够降低刷卡?

Answer 1:

欢迎在谷歌玻璃做的事情 - 在没有一切正常,因为它应该。 我有问题摆,但已经找到了一些一些解决方法。 无论哪种方式,建立了第一个手势检测是棘手的,当我这样做是为了。 我会为您提供我已经把现在的玻璃应用我做了运行的两个工作方案。

威盛的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的一个代码块时只。



文章来源: Back Swipe not working in Google Glass Activity