Google glass Google Glass GDK Hello World沉浸式活动
步骤,我已经用它创建了我的第一个Google glass Google Glass GDK Hello World沉浸式活动,google-glass,google-gdk,Google Glass,Google Gdk,步骤,我已经用它创建了我的第一个googleglass-GDKApp 新项目应用名称,公司域下一步Glass(Glass Development Kit Preview(Google Inc.)(API 19))下一步沉浸式活动 沉浸式活动。java: public class ImmersionActivity extends Activity { /** * {@link CardScrollView} to use as the main content view.
googleglass-GDK
App
新项目
应用名称,公司域
下一步
Glass(Glass Development Kit Preview(Google Inc.)(API 19))
下一步
沉浸式活动
沉浸式活动。java:
public class ImmersionActivity extends Activity {
/**
* {@link CardScrollView} to use as the main content view.
*/
private CardScrollView mCardScroller;
private View mView;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
mView = buildView();
mCardScroller = new CardScrollView(this);
mCardScroller.setAdapter(new CardScrollAdapter() {
@Override
public int getCount() {
return 1;
}
@Override
public Object getItem(int position) {
return mView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return mView;
}
@Override
public int getPosition(Object item) {
if (mView.equals(item)) {
return 0;
}
return AdapterView.INVALID_POSITION;
}
});
// Handle the TAP event.
mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Plays disallowed sound to indicate that TAP actions are not supported.
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.playSoundEffect(Sounds.DISALLOWED);
}
});
setContentView(mCardScroller);
}
@Override
protected void onResume() {
super.onResume();
mCardScroller.activate();
}
@Override
protected void onPause() {
mCardScroller.deactivate();
super.onPause();
}
/**
* Builds a Glass styled "Hello World!" view using the {@link CardBuilder} class.
*/
private View buildView() {
CardBuilder card = new CardBuilder(this, CardBuilder.Layout.TEXT);
card.setText(R.string.hello_world);
return card.getView();
}
}
<activity
android:name=".ImmersionActivity"
android:icon="@drawable/ic_glass_logo"
android:label="@string/title_activity_immersion" >
<intent-filter>
<action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
</intent-filter>
<meta-data
android:name="com.google.android.glass.VoiceTrigger"
android:resource="@xml/voice_trigger" />
</activity>
<trigger command="SHOW_ME_A_DEMO" />
公共类浸入式活动扩展活动{
/**
*{@link CardScrollView}用作主内容视图。
*/
私有卡滚动查看mCardScroller;
私有视图;
@凌驾
创建时受保护的void(捆绑){
super.onCreate(bundle);
mView=buildView();
mCardScroller=新的CardScrollView(此);
setAdapter(新的CardScrollAdapter(){
@凌驾
public int getCount(){
返回1;
}
@凌驾
公共对象getItem(int位置){
返回mView;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
返回mView;
}
@凌驾
public int getPosition(对象项){
如果(mView.equals(项目)){
返回0;
}
返回AdapterView.INVALID_位置;
}
});
//处理点击事件。
mCardScroller.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//播放不允许的声音,表示不支持点击操作。
AudioManager am=(AudioManager)getSystemService(Context.AUDIO\u服务);
am.播放声音效果(声音。不允许);
}
});
setContentView(mCardScroller);
}
@凌驾
受保护的void onResume(){
super.onResume();
mCardScroller.activate();
}
@凌驾
受保护的void onPause(){
mCardScroller.deactivate();
super.onPause();
}
/**
*使用{@link CardBuilder}类构建玻璃样式的“Hello World!”视图。
*/
私有视图buildView(){
cardbuildercard=新的CardBuilder(这是CardBuilder.Layout.TEXT);
card.setText(R.string.hello\u world);
return card.getView();
}
}
Manifest.xml:
public class ImmersionActivity extends Activity {
/**
* {@link CardScrollView} to use as the main content view.
*/
private CardScrollView mCardScroller;
private View mView;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
mView = buildView();
mCardScroller = new CardScrollView(this);
mCardScroller.setAdapter(new CardScrollAdapter() {
@Override
public int getCount() {
return 1;
}
@Override
public Object getItem(int position) {
return mView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return mView;
}
@Override
public int getPosition(Object item) {
if (mView.equals(item)) {
return 0;
}
return AdapterView.INVALID_POSITION;
}
});
// Handle the TAP event.
mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Plays disallowed sound to indicate that TAP actions are not supported.
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.playSoundEffect(Sounds.DISALLOWED);
}
});
setContentView(mCardScroller);
}
@Override
protected void onResume() {
super.onResume();
mCardScroller.activate();
}
@Override
protected void onPause() {
mCardScroller.deactivate();
super.onPause();
}
/**
* Builds a Glass styled "Hello World!" view using the {@link CardBuilder} class.
*/
private View buildView() {
CardBuilder card = new CardBuilder(this, CardBuilder.Layout.TEXT);
card.setText(R.string.hello_world);
return card.getView();
}
}
<activity
android:name=".ImmersionActivity"
android:icon="@drawable/ic_glass_logo"
android:label="@string/title_activity_immersion" >
<intent-filter>
<action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
</intent-filter>
<meta-data
android:name="com.google.android.glass.VoiceTrigger"
android:resource="@xml/voice_trigger" />
</activity>
<trigger command="SHOW_ME_A_DEMO" />
voice\u trigger.xml:
public class ImmersionActivity extends Activity {
/**
* {@link CardScrollView} to use as the main content view.
*/
private CardScrollView mCardScroller;
private View mView;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
mView = buildView();
mCardScroller = new CardScrollView(this);
mCardScroller.setAdapter(new CardScrollAdapter() {
@Override
public int getCount() {
return 1;
}
@Override
public Object getItem(int position) {
return mView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return mView;
}
@Override
public int getPosition(Object item) {
if (mView.equals(item)) {
return 0;
}
return AdapterView.INVALID_POSITION;
}
});
// Handle the TAP event.
mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Plays disallowed sound to indicate that TAP actions are not supported.
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.playSoundEffect(Sounds.DISALLOWED);
}
});
setContentView(mCardScroller);
}
@Override
protected void onResume() {
super.onResume();
mCardScroller.activate();
}
@Override
protected void onPause() {
mCardScroller.deactivate();
super.onPause();
}
/**
* Builds a Glass styled "Hello World!" view using the {@link CardBuilder} class.
*/
private View buildView() {
CardBuilder card = new CardBuilder(this, CardBuilder.Layout.TEXT);
card.setText(R.string.hello_world);
return card.getView();
}
}
<activity
android:name=".ImmersionActivity"
android:icon="@drawable/ic_glass_logo"
android:label="@string/title_activity_immersion" >
<intent-filter>
<action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
</intent-filter>
<meta-data
android:name="com.google.android.glass.VoiceTrigger"
android:resource="@xml/voice_trigger" />
</activity>
<trigger command="SHOW_ME_A_DEMO" />
现在,我所理解的是,我们可以通过触发语音
命令“向我展示演示
”来运行这个应用程序,这是正确的还是错误的
有没有办法使用Android Studio在Android Emulator上运行Glass GDK应用程序
现在,据我所知,我们可以通过触发语音命令“演示”来运行这个应用程序,这是对还是错
没错。您甚至可以配置此触发器并使用它
有没有办法使用Android Studio在Android Emulator上运行Glass GDK应用程序
不,你不能。Android虚拟设备管理器上仅提供平板电脑、手机、手表和电视设备
现在,据我所知,我们可以通过触发语音命令“演示”来运行这个应用程序,这是对还是错
是的,您可以将触发器设置为command=“Show\u me\u a\u demo”
但是有了这个功能,您只能从speak菜单运行它。
我会把它变成
你可以使用任何你想要的关键字,但有了这个关键字,它将显示在应用程序菜单以及speak菜单上。将显示的名称将是您为应用程序命名的任何名称
添加
到你的舱单。确保自定义命令正常工作的步骤
目前还没有可用的glass模拟器。那么还有其他方法来测试GDK应用程序吗?使用Google glass单元,是的