使用HTML5开发Google Glass(初学者)

时间:2014-09-06 19:33:19

标签: android html5 browser google-glass

我是Google Glass的编程新手。我非常喜欢卡的可能性(https://glass-python-starter-demo.appspot.com/),我可以提交HTML。

因为我正在进行的项目(我想使用Glass)是一个在线平台,我希望能够在网站上工作。我发现,我可以(从用户代理)检测到正在使用Glass(http://www.googleglass.gs/quick-tip-google-glass-web-browser-user-agent/

所以,现在我的问题分为两部分。

1)我是否可以创建一个Android应用程序,它实际上是一个没有工具栏的浏览器'所以我可以直接指向一个网页,但是它可以作为一个应用程序,以便我可以在菜单中使用它(之后:" ok Glass")?

2)我可以在上面的应用程序中使用语音命令吗?

PS: 我知道这是一个初学者的问题,但是 - 除了Glass Cards选项之外 - 很难找到一个起点。

1 个答案:

答案 0 :(得分:0)

因此,如果我理解正确,您需要执行以下操作: 1)创建一个基本上只是浏览器的应用程序。 2)打开的链接指向实际包含应用程序的网站。 3)使用语音命令来控制此应用程序。 所有这些都可以绕过java / xml中的代码,这样你就可以用你熟悉的语言进行编码,然后在线运行,只需要用一行代码在实际的应用代码中创建浏览器。

是的,您可以创建一个只是浏览器的应用。 是的,你可以将它链接到你的网站,然后让它留在那里。

我认为与网站互动会更加困难。默认浏览器控件是点击以点击,按住2个手指并移动头部移动"鼠标"在当前屏幕周围,向上和向下滑动以滚动。

如果您想要控制应用,您必须实施自己的手势检测器,覆盖每次执行操作时所采取的默认操作,然后针对每个操作向您的网站发送一些内容,让它知道您刚做了一件事。

您也可以使用语音识别控件。

无论哪种方式,如果您决定使用标准控件,您都需要一个gesturedetector来覆盖浏览器的默认控件。以下是您需要的:

在最顶端,你有

private GestureDetector gestureDetector;

然后在onCreate方法中,您需要创建一个gestureDetector。我喜欢有一种方法来创建它更远。这对我来说只是更干净。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        gestureDetector = createGestureDetector(this);
    }

然后实际创建GestureDetector的方法:

private GestureDetector createGestureDetector(Context context) {
        GestureDetector gestureDetectorTemp = new GestureDetector(context, new GestureDetector.OnGestureListener() {
            @Override
            public boolean onDown(MotionEvent motionEvent) {
                return false;
            }

            @Override
            public void onShowPress(MotionEvent motionEvent) {
                return false;
            }

            @Override
            public boolean onSingleTapUp(MotionEvent motionEvent) {
                //communicate to the website that you tapped, and have it handle the tap
                Log.v("APP_TAG","Someone tapped me!");
                return false; 
            }
            @Override
            public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent2, float distanceX, float distanceY) {
                return false;
            }
            @Override
            public void onLongPress(MotionEvent motionEvent) {
                return false;
            }

            @Override
            public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) { //fling = a single slide
                return false;
            }
        });
        return gestureDetectorTemp;
    }

请注意,每个被覆盖的方法都有一个"返回false"在里面。您要返回的布尔值表示是否要使用该事件。 换句话说,如果你看一下onSingleTapUp,我们就会有一个Log.v打印出来"有人点击了我!"当你点击屏幕。通过返回false,您可以根据tao(在浏览器的情况下,"单击"鼠标)发生其他任何事情。如果您返回true,则不会发生任何其他情况。该事件不会被报告给其他默认方法。因此,为了使浏览器的所有默认控件无效,您只需将其中的所有返回语句更改为"返回true",表示事件已被使用且无需进一步操作!

我希望有所帮助。如果您的目标是完全绕过整个Android编码平台,只是在浏览器中进行开发,然后将应用程序链接到浏览器,我认为您不能仅仅因为性质而完全做到这一点玻璃没有带有许多不同按钮和键盘等的触摸屏。您需要至少进行一些玻璃开发才能使其正常工作。