diff --git a/core/java/android/service/voice/VoiceInteractionServiceInfo.java b/core/java/android/service/voice/VoiceInteractionServiceInfo.java index 463eb5be46f61..ebe3f47f0b021 100644 --- a/core/java/android/service/voice/VoiceInteractionServiceInfo.java +++ b/core/java/android/service/voice/VoiceInteractionServiceInfo.java @@ -52,9 +52,21 @@ public class VoiceInteractionServiceInfo { } public VoiceInteractionServiceInfo(PackageManager pm, ComponentName comp, int userHandle) - throws PackageManager.NameNotFoundException, RemoteException { - this(pm, AppGlobals.getPackageManager().getServiceInfo(comp, - PackageManager.GET_META_DATA, userHandle)); + throws PackageManager.NameNotFoundException { + this(pm, getServiceInfoOrThrow(comp, userHandle)); + } + + static ServiceInfo getServiceInfoOrThrow(ComponentName comp, int userHandle) + throws PackageManager.NameNotFoundException { + try { + ServiceInfo si = AppGlobals.getPackageManager().getServiceInfo(comp, + PackageManager.GET_META_DATA, userHandle); + if (si != null) { + return si; + } + } catch (RemoteException e) { + } + throw new PackageManager.NameNotFoundException(comp.toString()); } public VoiceInteractionServiceInfo(PackageManager pm, ServiceInfo si) { diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java index f396c2dbc5f01..8fee91fdca7ec 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java @@ -362,7 +362,6 @@ public class VoiceInteractionManagerService extends SystemService { } } catch (PackageManager.NameNotFoundException e) { Slog.w(TAG, "Failure looking up interaction service " + comp); - } catch (RemoteException e) { } } } diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java index 30296e15e6384..109d214e11672 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java @@ -116,7 +116,7 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne VoiceInteractionServiceInfo info; try { info = new VoiceInteractionServiceInfo(context.getPackageManager(), service, mUser); - } catch (RemoteException|PackageManager.NameNotFoundException e) { + } catch (PackageManager.NameNotFoundException e) { Slog.w(TAG, "Voice interaction service not found: " + service, e); mInfo = null; mSessionComponentName = null;