谷歌眼镜是一款由谷歌公司开发的头戴式显示设备,它通过光学显示技术将信息直接投影到用户的视场中。这款设备运行在Android 4.4x系统上,采用双核SoC处理器。本文将讨论为谷歌眼镜设计应用时的考虑因素,以及如何利用Mirror API和GDK构建混合应用。
谷歌眼镜的界面类似于时间线,用户可以通过滑动屏幕查看当前活动,如天气信息,或者滑动查看历史活动,如接到的电话、拍摄的照片等。据估计,用户平均在屏幕上的注视时间不超过4秒,这为应用设计带来了挑战和机遇。
建议应用设计应具备以下特点:
谷歌眼镜应用通常分为两种类型:
混合应用:是指同时使用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);