探索谷歌眼镜应用开发

谷歌眼镜是一款由谷歌公司开发的头戴式显示设备,它通过光学显示技术将信息直接投影到用户的视场中。这款设备运行在Android 4.4x系统上,采用双核SoC处理器。本文将讨论为谷歌眼镜设计应用时的考虑因素,以及如何利用Mirror API和GDK构建混合应用

设计考虑

谷歌眼镜的界面类似于时间线,用户可以通过滑动屏幕查看当前活动,如天气信息,或者滑动查看历史活动,如接到的电话、拍摄的照片等。据估计,用户平均在屏幕上的注视时间不超过4秒,这为应用设计带来了挑战和机遇。

建议应用设计应具备以下特点:

  • 上下文相关性:应用应提供与用户环境相关的信息,且不应占用用户超过几秒钟的注意力。例如,用户可以在前往机场接朋友之前,快速查看特定航班的到达时间。
  • 实时卡片:实时卡片出现在时间线的当前部分,显示当前信息。
  • 快速更新:如新闻故事等应用应只包含标题,并作为快速更新出现,而不是完整的故事。同时建议开发者提供朗读选项,以便用户可以听取完整故事。
  • 静态卡片:静态卡片出现在时间线的过去部分,用户可以根据自己的方便随时查看。
  • 简化用户输入:大多数信息应通过单次滑动获得。包含一些操作按钮,并保持它们简单且可通过语音控制。

构建混合谷歌眼镜应用

谷歌眼镜应用通常分为两种类型:

  • Mirror API:它帮助构建与谷歌眼镜交互的基于Web的服务。大部分代码在云端运行,而不是在谷歌眼镜本身上。谷歌提供了Mirror API的启动项目,以帮助开发者在编写实际代码之前探索不同的API和输出。
  • GDK(Glass Development Kit):它是Android SDK的扩展,帮助构建直接在谷歌眼镜上运行的应用。GDK帮助访问谷歌眼镜上的传感器,如加速度计和GPS,以及硬件特性,如相机。

混合应用是指同时使用Mirror API和GDK的应用。本文的代码示例是一个混合应用。

代码示例详解

这个应用旨在帮助STEM(科学、技术、工程和数学)教师和学生参与有效的教育体验。这个谷歌眼镜应用使用Mirror API接收教师提供的实验室实验指导,并将其发布到学生的谷歌眼镜设备上。然后,学生按照步骤进行实验。每个指导都有一个图片,显示该步骤的结果应该是什么样子,帮助学生验证他们是否正确进行了实验。此外,还有一个朗读选项,可以向学生朗读指导。实验结束后,学生可以通过拍照并将结果发送给教师来提交最终结果。

谷歌提供了Java、Python和PHP的Mirror API快速启动项目。在本例中,使用Java快速启动项目,它创建了调用Mirror API所需的所有必要文件。将逻辑添加到Mainservlet.java文件中。

混合应用

这个应用结合了相机和Mirror API的使用。学生使用相机拍摄最终产品的照片。由于Mirror API无法访问设备功能,使用GDK创建一个Java程序来处理捕获图像。让将这个包称为Chembuddy,并将其放置在与Mirror API项目相同的包中。

Chembuddy/MainActivity.java

类似于使用相机Intent的Android应用。

C++ Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 0);

MainServlet.java文件中包含以下代码片段以调用GDK代码。

C++ //与GDK通信以调用原生相机 MenuItem item = new MenuItem(); item.setId("takePicture"); item.setAction("OPEN_URI"); item.setPayload("glassware://com.example.chembuddy");

setPayload函数包含指向MainActivity.java文件的路径,该文件负责调用相机。

设置朗读选项

在卡片上创建一个菜单项,将其操作设置为READ_ALOUD。

C++ MenuItem item = new MenuItem(); item.setId("readaloud"); item.setAction("READ_ALOUD");

使用字符串变量speakabletext指向希望朗读的卡片上的文本。

C++ speakabletext = el.getElementsByTag("p").first().text();

将此值设置到timelineItem。

C++ timelineItem.setSpeakableText(speakabletext);
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485