![](/img/trans.png)
[英]Android: Passing data from one activity to another activity in ListView
[英]Passing data from one Activity to another Activity when using speech recognition android
我的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的新手
公共靜態最終字符串ACTION_RECOGNIZE_SPEECH
在API級別3中添加。啟動一個活動,該活動將提示用戶進行語音交流並通過語音識別器發送語音。 如果使用startActivityForResult(Intent,int)啟動意圖,則結果將通過活動結果返回(在onActivityResult(int,int,Intent)中),或者如果提供的話,則通過PendingIntent轉發。
不支持僅使用startActivity(Intent)啟動此意圖。 您必須使用startActivityForResult(Intent,int)或提供PendingIntent來接收識別結果。 文件來源
因此,嘗試處理startActivityForResult();
其次,您應該向Manifest
添加權限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
第三,如果定義了Action
RecognizerIntent.ACTION_RECOGNIZE_SPEECH
,那么系統將嘗試打開可以處理它的Activity
。 因此,對於您的下一個Activity
您應該將此“技能”添加到Manifest
。 來源 。 如果您不想要,只需照常使用Intent.ACTION_VIEW
處理此Activity
。
另外,您還可以得到一個不錯的答案 。 我猜這將適合您。
試試看。 希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.