Merge "Throw better exception when startVoiceActivity fails" into nyc-dev
am: 2be4c463bc
* commit '2be4c463bc6411cf6fb9e2a4be0cbb90c485d0de':
Throw better exception when startVoiceActivity fails
Change-Id: Ie8dfd6ed1f366e24418f352c810281ca687c70fb
This commit is contained in:
@@ -125,6 +125,19 @@ public class ActivityManager {
|
||||
*/
|
||||
public static final String META_HOME_ALTERNATE = "android.app.home.alternate";
|
||||
|
||||
/**
|
||||
* Result for IActivityManager.startVoiceActivity: active session is currently hidden.
|
||||
* @hide
|
||||
*/
|
||||
public static final int START_VOICE_HIDDEN_SESSION = -10;
|
||||
|
||||
/**
|
||||
* Result for IActivityManager.startVoiceActivity: active session does not match
|
||||
* the requesting token.
|
||||
* @hide
|
||||
*/
|
||||
public static final int START_VOICE_NOT_ACTIVE_SESSION = -9;
|
||||
|
||||
/**
|
||||
* Result for IActivityManager.startActivity: trying to start a background user
|
||||
* activity that shouldn't be displayed for all users.
|
||||
|
||||
@@ -1797,7 +1797,7 @@ public class Instrumentation {
|
||||
if (res >= ActivityManager.START_SUCCESS) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
switch (res) {
|
||||
case ActivityManager.START_INTENT_NOT_RESOLVED:
|
||||
case ActivityManager.START_CLASS_NOT_FOUND:
|
||||
@@ -1820,6 +1820,15 @@ public class Instrumentation {
|
||||
case ActivityManager.START_NOT_VOICE_COMPATIBLE:
|
||||
throw new SecurityException(
|
||||
"Starting under voice control not allowed for: " + intent);
|
||||
case ActivityManager.START_VOICE_NOT_ACTIVE_SESSION:
|
||||
throw new IllegalStateException(
|
||||
"Session calling startVoiceActivity does not match active session");
|
||||
case ActivityManager.START_VOICE_HIDDEN_SESSION:
|
||||
throw new IllegalStateException(
|
||||
"Cannot start voice activity on a hidden session");
|
||||
case ActivityManager.START_CANCELED:
|
||||
throw new AndroidRuntimeException("Activity could not be started for "
|
||||
+ intent);
|
||||
default:
|
||||
throw new AndroidRuntimeException("Unknown error code "
|
||||
+ res + " when starting " + intent);
|
||||
|
||||
@@ -183,11 +183,11 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
|
||||
try {
|
||||
if (mActiveSession == null || token != mActiveSession.mToken) {
|
||||
Slog.w(TAG, "startVoiceActivity does not match active session");
|
||||
return ActivityManager.START_CANCELED;
|
||||
return ActivityManager.START_VOICE_NOT_ACTIVE_SESSION;
|
||||
}
|
||||
if (!mActiveSession.mShown) {
|
||||
Slog.w(TAG, "startVoiceActivity not allowed on hidden session");
|
||||
return ActivityManager.START_CANCELED;
|
||||
return ActivityManager.START_VOICE_HIDDEN_SESSION;
|
||||
}
|
||||
intent = new Intent(intent);
|
||||
intent.addCategory(Intent.CATEGORY_VOICE);
|
||||
|
||||
Reference in New Issue
Block a user