使用语音识别android时将数据从一个活动传递到另一个活动

使用语音识别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

我的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) {
        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
,那么系统将尝试打开能够处理它的
活动
。因此,对于您的下一个
活动
,您应该将此“技能”添加到
清单
。如果您不想,只需像往常一样以
意图处理此
活动

另外给你一个。我想这会适合你的


试试看。希望有帮助。

您是否已将
清单
属性和
操作
设置为您的
活动