我想使用两个不同的语音触发器来打开同一活动,然后在此活动中,根据所使用的触发器来决定要执行的 *** 作.
不添加额外提示就可以吗?根据文档,仅当使用提示时,您才可以访问RecognizerIntent.EXTRA_RESulTS.
所以我的问题是,是否可以使用多个语音触发器触发同一活动,并且有什么办法可以在代码中知道使用了哪个触发器?
解决方法:
完成@Ferdau的 *** 作后,我发现了使用活动别名和元数据的更好方法.
将包含第一个语音触发器的活动添加到您的AndroIDManifest.xml中:
<activity androID:name="com.package.MainActivity"> <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/glass_first_trigger" /></activity>
@H_502_17@然后,在其中添加一个包含第二个触发器的活动别名
<activity-alias androID:name=".StartMainActivityWithAParameter" androID:targetActivity="com.package.MainActivity"> <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/glass_second_trigger" /></activity-alias>
@H_502_17@然后,在代码上,您可以读取元数据值并决定要执行的 *** 作:
ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentname(),PackageManager.GET_ACTIVITIES|PackageManager.GET_Meta_DATA);int secondVoiceTrigger = activityInfo.MetaData.getInt("com.Google.androID.glass.VoiceTrigger");if(secondVoiceTrigger == R.xml.glass_second_trigger) { //Todo do different stuff}
@H_502_17@ 总结以上是内存溢出为你收集整理的android-多个语音触发器可在Glass上启动相同的活动并区分使用了哪个全部内容,希望文章能够帮你解决android-多个语音触发器可在Glass上启动相同的活动并区分使用了哪个所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)