我在使用 VoiceInteractor 时遇到问题。这是我的清单部分:
<activity android:name=".ProductSearchActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.gms.actions.SEARCH_ACTION" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
</application>
而在活动中,
@Override
public void onResume() {
super.onResume();
if (isVoiceInteraction()) {
getVoiceInteractor().submitRequest(new VoiceInteractor.PickOptionRequest(prompt, optionArr, null) {
@Override
public void onPickOptionResult(boolean finished, Option[] selections, Bundle result) {
if (finished && selections.length == 1) {
showResult(selections[0].getIndex());
}
}
@Override
public void onCancel() {
getActivity().finish();
}
});
}
}
每当我使用“OK Google,在 MYCART 上搜索夹克”启动我的应用程序时,它都会启动应用程序,但 isVoiceInteraction() 总是返回 false 并且 getVoiceInteractor() 总是返回 null,即使我通过谷歌搜索启动应用程序也是如此。任何人都可以帮助我吗?