找到了一个有一些缺点的解决方法:
- 根据选项的数量膨胀 AndroidManifest。
- 获得选定选项的不同方法。
- 不能以编程方式完成。
工作流程更像...
---------
"Ok, Glass"
---------
"Scan"
---------
ok glass, scan...
QR Code
Product
Barcode
---------
"Barcode"
安卓清单:
<activity android:name="com.cantilsoftware.barcodeeye.LaunchActivity">
</activity>
<activity-alias
android:name="Product"
android:label="Product"
android:targetActivity="com.cantilsoftware.barcodeeye.LaunchActivity" >
<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_scan" />
</activity-alias>
<activity-alias
android:name="Barcode"
android:label="Barcode"
android:targetActivity="com.cantilsoftware.barcodeeye.LaunchActivity" >
<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_scan" />
</activity-alias>
<activity-alias
android:name="QR Code"
android:label="QR Code"
android:targetActivity="com.cantilsoftware.barcodeeye.LaunchActivity" >
<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_scan" />
</activity-alias>
选择检测:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launch);
try {
ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentName(), 0);
processVoiceAction(activityInfo.loadLabel(getPackageManager()).toString());
} catch (NameNotFoundException e) {
e.printStackTrace();
processVoiceAction(null);
}
}