Loading core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl +13 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,7 @@ interface IVoiceInteractionManagerService { * @param activityToken optional token of activity that needs to be on top * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") boolean showSessionForActiveService(in Bundle args, int sourceFlags, IVoiceInteractionSessionShowCallback showCallback, IBinder activityToken); Loading @@ -136,6 +137,7 @@ interface IVoiceInteractionManagerService { * Hides the session from the active service, if it is showing. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void hideCurrentSession(); /** Loading @@ -143,12 +145,14 @@ interface IVoiceInteractionManagerService { * be called if {@link #activeServiceSupportsLaunchFromKeyguard()} returns true. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void launchVoiceAssistFromKeyguard(); /** * Indicates whether there is a voice session running (but not necessarily showing). * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") boolean isSessionRunning(); /** Loading @@ -156,6 +160,7 @@ interface IVoiceInteractionManagerService { * assist gesture. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") boolean activeServiceSupportsAssist(); /** Loading @@ -163,18 +168,21 @@ interface IVoiceInteractionManagerService { * from the lockscreen. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") boolean activeServiceSupportsLaunchFromKeyguard(); /** * Called when the lockscreen got shown. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void onLockscreenShown(); /** * Register a voice interaction listener. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void registerVoiceInteractionSessionListener(IVoiceInteractionSessionListener listener); /** Loading @@ -182,6 +190,7 @@ interface IVoiceInteractionManagerService { * Returns all supported voice actions. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void getActiveServiceSupportedActions(in List<String> voiceActions, in IVoiceActionCheckCallback callback); Loading Loading @@ -214,6 +223,7 @@ interface IVoiceInteractionManagerService { * NOTE: it's only effective when the service itself is available / enabled in the device, so * calling setDisable(false) would be a no-op when it isn't. */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void setDisabled(boolean disabled); /** Loading Loading @@ -244,6 +254,7 @@ interface IVoiceInteractionManagerService { * @param callback Use this to report {@link HotwordDetectionService} status. * @param detectorType Indicate which detector is used. */ @EnforcePermission("MANAGE_HOTWORD_DETECTION") void updateState( in Identity originatorIdentity, in PersistableBundle options, Loading @@ -256,6 +267,7 @@ interface IVoiceInteractionManagerService { */ void shutdownHotwordDetectionService(); @EnforcePermission(allOf={"RECORD_AUDIO", "CAPTURE_AUDIO_HOTWORD"}) void startListeningFromMic( in AudioFormat audioFormat, in IMicrophoneHotwordDetectionVoiceInteractionCallback callback); Loading @@ -271,6 +283,7 @@ interface IVoiceInteractionManagerService { /** * Test API to simulate to trigger hardware recognition event for test. */ @EnforcePermission(allOf={"RECORD_AUDIO", "CAPTURE_AUDIO_HOTWORD"}) void triggerHardwareRecognitionEventForTest( in SoundTrigger.KeyphraseRecognitionEvent event, in IHotwordRecognitionStatusCallback callback); Loading services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +13 −15 Original line number Diff line number Diff line Loading @@ -1149,9 +1149,9 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void setDisabled(boolean disabled) { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { if (mTemporarilyDisabled == disabled) { if (DEBUG) Slog.d(TAG, "setDisabled(): already " + disabled); Loading Loading @@ -1207,6 +1207,7 @@ public class VoiceInteractionManagerService extends SystemService { //----------------- Hotword Detection/Validation APIs --------------------------------// @android.annotation.EnforcePermission(android.Manifest.permission.MANAGE_HOTWORD_DETECTION) @Override public void updateState( @NonNull Identity voiceInteractorIdentity, Loading @@ -1214,7 +1215,6 @@ public class VoiceInteractionManagerService extends SystemService { @Nullable SharedMemory sharedMemory, IHotwordRecognitionStatusCallback callback, int detectorType) { enforceCallingPermission(Manifest.permission.MANAGE_HOTWORD_DETECTION); synchronized (this) { enforceIsCurrentVoiceInteractionService(); Loading Loading @@ -1256,13 +1256,12 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(allOf={android.Manifest.permission.RECORD_AUDIO, android.Manifest.permission.CAPTURE_AUDIO_HOTWORD}) @Override public void startListeningFromMic( AudioFormat audioFormat, IMicrophoneHotwordDetectionVoiceInteractionCallback callback) throws RemoteException { enforceCallingPermission(Manifest.permission.RECORD_AUDIO); enforceCallingPermission(Manifest.permission.CAPTURE_AUDIO_HOTWORD); synchronized (this) { enforceIsCurrentVoiceInteractionService(); Loading Loading @@ -1322,13 +1321,12 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(allOf={android.Manifest.permission.RECORD_AUDIO, android.Manifest.permission.CAPTURE_AUDIO_HOTWORD}) @Override public void triggerHardwareRecognitionEventForTest( SoundTrigger.KeyphraseRecognitionEvent event, IHotwordRecognitionStatusCallback callback) throws RemoteException { enforceCallingPermission(Manifest.permission.RECORD_AUDIO); enforceCallingPermission(Manifest.permission.CAPTURE_AUDIO_HOTWORD); synchronized (this) { enforceIsCurrentVoiceInteractionService(); Loading Loading @@ -1669,10 +1667,10 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public boolean showSessionForActiveService(Bundle args, int sourceFlags, IVoiceInteractionSessionShowCallback showCallback, IBinder activityToken) { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); if (DEBUG_USER) Slog.d(TAG, "showSessionForActiveService()"); synchronized (this) { Loading Loading @@ -1700,9 +1698,9 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void hideCurrentSession() throws RemoteException { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); if (mImpl == null) { return; Loading @@ -1721,9 +1719,9 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void launchVoiceAssistFromKeyguard() { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { if (mImpl == null) { Slog.w(TAG, "launchVoiceAssistFromKeyguard without running voice interaction" Loading @@ -1739,34 +1737,34 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public boolean isSessionRunning() { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { return mImpl != null && mImpl.mActiveSession != null; } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public boolean activeServiceSupportsAssist() { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { return mImpl != null && mImpl.mInfo != null && mImpl.mInfo.getSupportsAssist(); } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public boolean activeServiceSupportsLaunchFromKeyguard() throws RemoteException { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { return mImpl != null && mImpl.mInfo != null && mImpl.mInfo.getSupportsLaunchFromKeyguard(); } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void onLockscreenShown() { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { if (mImpl == null) { return; Loading @@ -1786,19 +1784,19 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void registerVoiceInteractionSessionListener( IVoiceInteractionSessionListener listener) { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { mVoiceInteractionSessionListeners.register(listener); } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void getActiveServiceSupportedActions(List<String> voiceActions, IVoiceActionCheckCallback callback) { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { if (mImpl == null) { try { Loading Loading
core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl +13 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,7 @@ interface IVoiceInteractionManagerService { * @param activityToken optional token of activity that needs to be on top * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") boolean showSessionForActiveService(in Bundle args, int sourceFlags, IVoiceInteractionSessionShowCallback showCallback, IBinder activityToken); Loading @@ -136,6 +137,7 @@ interface IVoiceInteractionManagerService { * Hides the session from the active service, if it is showing. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void hideCurrentSession(); /** Loading @@ -143,12 +145,14 @@ interface IVoiceInteractionManagerService { * be called if {@link #activeServiceSupportsLaunchFromKeyguard()} returns true. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void launchVoiceAssistFromKeyguard(); /** * Indicates whether there is a voice session running (but not necessarily showing). * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") boolean isSessionRunning(); /** Loading @@ -156,6 +160,7 @@ interface IVoiceInteractionManagerService { * assist gesture. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") boolean activeServiceSupportsAssist(); /** Loading @@ -163,18 +168,21 @@ interface IVoiceInteractionManagerService { * from the lockscreen. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") boolean activeServiceSupportsLaunchFromKeyguard(); /** * Called when the lockscreen got shown. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void onLockscreenShown(); /** * Register a voice interaction listener. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void registerVoiceInteractionSessionListener(IVoiceInteractionSessionListener listener); /** Loading @@ -182,6 +190,7 @@ interface IVoiceInteractionManagerService { * Returns all supported voice actions. * @RequiresPermission Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void getActiveServiceSupportedActions(in List<String> voiceActions, in IVoiceActionCheckCallback callback); Loading Loading @@ -214,6 +223,7 @@ interface IVoiceInteractionManagerService { * NOTE: it's only effective when the service itself is available / enabled in the device, so * calling setDisable(false) would be a no-op when it isn't. */ @EnforcePermission("ACCESS_VOICE_INTERACTION_SERVICE") void setDisabled(boolean disabled); /** Loading Loading @@ -244,6 +254,7 @@ interface IVoiceInteractionManagerService { * @param callback Use this to report {@link HotwordDetectionService} status. * @param detectorType Indicate which detector is used. */ @EnforcePermission("MANAGE_HOTWORD_DETECTION") void updateState( in Identity originatorIdentity, in PersistableBundle options, Loading @@ -256,6 +267,7 @@ interface IVoiceInteractionManagerService { */ void shutdownHotwordDetectionService(); @EnforcePermission(allOf={"RECORD_AUDIO", "CAPTURE_AUDIO_HOTWORD"}) void startListeningFromMic( in AudioFormat audioFormat, in IMicrophoneHotwordDetectionVoiceInteractionCallback callback); Loading @@ -271,6 +283,7 @@ interface IVoiceInteractionManagerService { /** * Test API to simulate to trigger hardware recognition event for test. */ @EnforcePermission(allOf={"RECORD_AUDIO", "CAPTURE_AUDIO_HOTWORD"}) void triggerHardwareRecognitionEventForTest( in SoundTrigger.KeyphraseRecognitionEvent event, in IHotwordRecognitionStatusCallback callback); Loading
services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +13 −15 Original line number Diff line number Diff line Loading @@ -1149,9 +1149,9 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void setDisabled(boolean disabled) { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { if (mTemporarilyDisabled == disabled) { if (DEBUG) Slog.d(TAG, "setDisabled(): already " + disabled); Loading Loading @@ -1207,6 +1207,7 @@ public class VoiceInteractionManagerService extends SystemService { //----------------- Hotword Detection/Validation APIs --------------------------------// @android.annotation.EnforcePermission(android.Manifest.permission.MANAGE_HOTWORD_DETECTION) @Override public void updateState( @NonNull Identity voiceInteractorIdentity, Loading @@ -1214,7 +1215,6 @@ public class VoiceInteractionManagerService extends SystemService { @Nullable SharedMemory sharedMemory, IHotwordRecognitionStatusCallback callback, int detectorType) { enforceCallingPermission(Manifest.permission.MANAGE_HOTWORD_DETECTION); synchronized (this) { enforceIsCurrentVoiceInteractionService(); Loading Loading @@ -1256,13 +1256,12 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(allOf={android.Manifest.permission.RECORD_AUDIO, android.Manifest.permission.CAPTURE_AUDIO_HOTWORD}) @Override public void startListeningFromMic( AudioFormat audioFormat, IMicrophoneHotwordDetectionVoiceInteractionCallback callback) throws RemoteException { enforceCallingPermission(Manifest.permission.RECORD_AUDIO); enforceCallingPermission(Manifest.permission.CAPTURE_AUDIO_HOTWORD); synchronized (this) { enforceIsCurrentVoiceInteractionService(); Loading Loading @@ -1322,13 +1321,12 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(allOf={android.Manifest.permission.RECORD_AUDIO, android.Manifest.permission.CAPTURE_AUDIO_HOTWORD}) @Override public void triggerHardwareRecognitionEventForTest( SoundTrigger.KeyphraseRecognitionEvent event, IHotwordRecognitionStatusCallback callback) throws RemoteException { enforceCallingPermission(Manifest.permission.RECORD_AUDIO); enforceCallingPermission(Manifest.permission.CAPTURE_AUDIO_HOTWORD); synchronized (this) { enforceIsCurrentVoiceInteractionService(); Loading Loading @@ -1669,10 +1667,10 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public boolean showSessionForActiveService(Bundle args, int sourceFlags, IVoiceInteractionSessionShowCallback showCallback, IBinder activityToken) { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); if (DEBUG_USER) Slog.d(TAG, "showSessionForActiveService()"); synchronized (this) { Loading Loading @@ -1700,9 +1698,9 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void hideCurrentSession() throws RemoteException { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); if (mImpl == null) { return; Loading @@ -1721,9 +1719,9 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void launchVoiceAssistFromKeyguard() { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { if (mImpl == null) { Slog.w(TAG, "launchVoiceAssistFromKeyguard without running voice interaction" Loading @@ -1739,34 +1737,34 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public boolean isSessionRunning() { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { return mImpl != null && mImpl.mActiveSession != null; } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public boolean activeServiceSupportsAssist() { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { return mImpl != null && mImpl.mInfo != null && mImpl.mInfo.getSupportsAssist(); } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public boolean activeServiceSupportsLaunchFromKeyguard() throws RemoteException { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { return mImpl != null && mImpl.mInfo != null && mImpl.mInfo.getSupportsLaunchFromKeyguard(); } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void onLockscreenShown() { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { if (mImpl == null) { return; Loading @@ -1786,19 +1784,19 @@ public class VoiceInteractionManagerService extends SystemService { } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void registerVoiceInteractionSessionListener( IVoiceInteractionSessionListener listener) { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { mVoiceInteractionSessionListeners.register(listener); } } @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE) @Override public void getActiveServiceSupportedActions(List<String> voiceActions, IVoiceActionCheckCallback callback) { enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE); synchronized (this) { if (mImpl == null) { try { Loading