使用语音识别android时将数据从一个活动传递到另一个活动
我的Android Studio项目中有下一个代码使用语音识别android时将数据从一个活动传递到另一个活动,android,android-activity,android-studio,speech-recognition,Android,Android Activity,Android Studio,Speech Recognition,我的Android Studio项目中有下一个代码 @Override public void startActivity(Intent intent) { boolean bandera = Intent.ACTION_SEARCH.equals(intent.getAction()) || RecognizerIntent.ACTION_RECOGNIZE_SPEECH.equals(intent.getAction()); if (bandera) { in
@Override
public void startActivity(Intent intent) {
boolean bandera = Intent.ACTION_SEARCH.equals(intent.getAction()) || RecognizerIntent.ACTION_RECOGNIZE_SPEECH.equals(intent.getAction());
if (bandera) {
intent.putExtra("usuario", usuarioIS);
}
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
super.startActivity(intent);
}
搜索时,我使用putExtra方法将用户的一些信息从实际活动发送到另一个活动。但是当我使用语音识别时,startActivity方法会在我的手机中抛出一个异常,android studio不会给出异常的信息。有人知道为什么语音识别不起作用吗
这是我的舱单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ivan.saberespoder" >
<!-- To access Google+ APIs: rex -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- To retrieve OAuth 2.0 tokens or invalidate tokens to disconnect a user. This disconnect *** option is required to comply with the Google+ Sign-In developer policies -->
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> <!-- To retrieve the account name (email) as part of sign-in: -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<application
android:allowBackup="true"
android:icon="@mipmap/logopeq"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<activity
android:name=".PantallaPrincipal"
android:label="iShots" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.default_searchable"
android:value=".Busqueda" />
</activity>
<activity
android:name=".Busqueda"
android:label="@string/title_activity_busqueda" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<activity
android:name=".LoginActivity"
android:label="@string/title_activity_login"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".Registro"
android:label="@string/title_activity_menu_usuario" >
</activity>
<activity
android:name=".MostrarShot"
android:label="@string/title_activity_mostrar_shot" >
</activity>
<activity
android:name=".Settings"
android:label="@string/title_activity_settings" >
</activity>
<activity
android:name=".AgregarShot"
android:label="@string/title_activity_agregar_shot" >
</activity>
<activity
android:name=".ProfileActivity"
android:label="@string/title_activity_profile" >
</activity>
<activity
android:name=".HelpActivity"
android:label="@string/title_activity_help" >
</activity>
<activity
android:name=".AboutActivity"
android:label="@string/title_activity_about" >
</activity>
</application>
</manifest>
我刚开始使用Android Studio
公共静态最终字符串操作\u识别\u语音
API级别3中添加的启动活动将提示用户
并通过语音识别器发送。结果将是
通过活动结果(在onActivityResult(int,int,Intent)中)返回,
如果使用startActivityForResult(intent,int)启动intent,或
如果提供了悬挂式帐篷,则通过悬挂式帐篷转发
不支持仅使用startActivity(意图)启动此意图。
您必须使用startActivityForResult(Intent,int)或提供
PendingEvent,以接收识别结果。
因此,请尝试处理startActivityForResult()代码>
其次,您应该向清单
添加权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
第三,如果您定义了动作
识别器intent.Action\u recognizer\u SPEECH
,那么系统将尝试打开能够处理它的活动
。因此,对于您的下一个活动
,您应该将此“技能”添加到清单
。如果您不想,只需像往常一样以意图处理此活动
另外给你一个。我想这会适合你的
试试看。希望有帮助。您是否已将清单
属性和操作
设置为您的活动
?