因此,如果我理解正确,您希望执行以下操作:
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 的性质而完全做到这一点。没有带有许多不同按钮和键盘等的触摸屏。您至少需要进行一些玻璃开发才能使其正常工作。