【问题标题】:Developing for Google Glass with HTML5 (beginner)使用 HTML5 为 Google Glass 开发(初学者)
【发布时间】:2014-09-07 22:16:11
【问题描述】:

我是 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玻璃”)?

2) 我可以在上述应用中使用语音指令吗?

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

【问题讨论】:

    标签: android html browser google-glass


    【解决方案1】:

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

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

    我认为您与网站互动会更加困难。默认的浏览器控件是点击单击、按住 2 根手指并移动头部以在当前屏幕周围移动“鼠标”、上下滑动​​以滚动。

    如果您想控制应用程序,您必须实现自己的手势检测器,覆盖每次执行某项操作时采取的默认操作,然后针对每个操作向您的网站发送一些内容,让其知道您刚刚执行了东西。

    您也可以使用语音识别进行控制。

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

    在最顶端,您将拥有

    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;
        }
    

    请注意,每个被覆盖的方法都有一个“return false”。您返回的布尔值表示是否要使用该事件。 换句话说,如果你查看 onSingleTapUp,我们有一个 Log.v,它会打印出“有人窃听了我!”当您点击屏幕时。通过返回 false,您将让基于 tao 的任何其他事情发生(在浏览器的情况下,鼠标的“点击”)发生。如果您返回 true,则不会发生其他任何事情。该事件不会报告给其他默认方法。因此,要取消浏览器的所有默认控件,只需将那里的所有 return 语句更改为“return true”,表明该事件已被消费,无需进一步操作!

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 2019-11-08
      相关资源
      最近更新 更多