所以,如果我正確理解你,你想這樣做: 1)創建一個基本上只是一個瀏覽器的應用程序。 2)將鏈接打開到應用程序實際包含的網站上。 3)使用語音命令來控制這個應用程序。 所有繞過必須在java/xml中編碼,以便您可以使用您更熟悉的語言進行編碼,然後在線運行它,並在實際應用程序代碼中創建瀏覽器的一行代碼。
是的,你可以創建一個只是瀏覽器的應用程序。 是的,你可以讓它鏈接到你的網站,然後讓它留在那裏。
我認爲你將很難與網站互動。默認的瀏覽器控件是點擊點擊,按住兩個手指並移動您的頭部以在當前屏幕周圍移動「鼠標」,上下滑動以滾動。
如果你想控制應用程序,你必須實現自己的手勢檢測器,覆蓋每次你做的事情時採取的默認動作,然後爲每個動作發送一些東西到你的網站,讓它知道你只是做了些什麼。
您也可以使用語音識別進行控制。
無論哪種方式,如果您決定使用標準瀏覽器,則需要一個手勢檢測器來覆蓋瀏覽器的默認控件。下面是你需要什麼是:
在最頂端,你必須
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編碼平臺,並在瀏覽器中開發,然後將該應用程序鏈接到瀏覽器,那麼我認爲您完全不能僅僅因爲Glass的本質就完成它。沒有許多不同按鈕和鍵盤等的觸摸屏。您至少需要進行一些玻璃開發才能使其工作。