Loading services/voiceinteraction/java/com/android/server/voiceinteraction/DspTrustedHotwordDetectorSession.java +14 −7 Original line number Diff line number Diff line Loading @@ -106,12 +106,14 @@ final class DspTrustedHotwordDetectorSession extends HotwordDetectorSession { } HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECTED); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECTED, mVoiceInteractionServiceUid); if (!mValidatingDspTrigger) { Slog.i(TAG, "Ignoring #onDetected due to a process restart"); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, METRICS_KEYPHRASE_TRIGGERED_DETECT_UNEXPECTED_CALLBACK); METRICS_KEYPHRASE_TRIGGERED_DETECT_UNEXPECTED_CALLBACK, mVoiceInteractionServiceUid); return; } mValidatingDspTrigger = false; Loading @@ -122,7 +124,8 @@ final class DspTrustedHotwordDetectorSession extends HotwordDetectorSession { Slog.i(TAG, "Ignoring #onDetected due to a SecurityException", e); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, METRICS_KEYPHRASE_TRIGGERED_DETECT_SECURITY_EXCEPTION); METRICS_KEYPHRASE_TRIGGERED_DETECT_SECURITY_EXCEPTION, mVoiceInteractionServiceUid); externalCallback.onError(CALLBACK_ONDETECTED_GOT_SECURITY_EXCEPTION); return; } Loading Loading @@ -157,12 +160,14 @@ final class DspTrustedHotwordDetectorSession extends HotwordDetectorSession { } HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED, mVoiceInteractionServiceUid); if (!mValidatingDspTrigger) { Slog.i(TAG, "Ignoring #onRejected due to a process restart"); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, METRICS_KEYPHRASE_TRIGGERED_REJECT_UNEXPECTED_CALLBACK); METRICS_KEYPHRASE_TRIGGERED_REJECT_UNEXPECTED_CALLBACK, mVoiceInteractionServiceUid); return; } mValidatingDspTrigger = false; Loading @@ -187,7 +192,8 @@ final class DspTrustedHotwordDetectorSession extends HotwordDetectorSession { Slog.w(TAG, "Timed out on #detectFromDspSource"); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECT_TIMEOUT); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECT_TIMEOUT, mVoiceInteractionServiceUid); try { externalCallback.onError(CALLBACK_DETECT_TIMEOUT); } catch (RemoteException e) { Loading Loading @@ -220,7 +226,8 @@ final class DspTrustedHotwordDetectorSession extends HotwordDetectorSession { mCallback.onRejected(new HotwordRejectedResult.Builder().build()); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED_FROM_RESTART); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED_FROM_RESTART, mVoiceInteractionServiceUid); } catch (RemoteException e) { Slog.w(TAG, "Failed to call #rejected"); HotwordMetricsLogger.writeDetectorEvent( Loading services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java +11 −5 Original line number Diff line number Diff line Loading @@ -165,7 +165,8 @@ final class HotwordDetectionConnection { synchronized (mLock) { restartProcessLocked(); HotwordMetricsLogger.writeServiceRestartEvent(mDetectorType, HOTWORD_DETECTION_SERVICE_RESTARTED__REASON__SCHEDULE); HOTWORD_DETECTION_SERVICE_RESTARTED__REASON__SCHEDULE, mVoiceInteractionServiceUid); } }, mReStartPeriodSeconds, mReStartPeriodSeconds, TimeUnit.SECONDS); } Loading Loading @@ -200,7 +201,8 @@ final class HotwordDetectionConnection { // conditions with audio reading in the service. restartProcessLocked(); HotwordMetricsLogger.writeServiceRestartEvent(mDetectorType, HOTWORD_DETECTION_SERVICE_RESTARTED__REASON__AUDIO_SERVICE_DIED); HOTWORD_DETECTION_SERVICE_RESTARTED__REASON__AUDIO_SERVICE_DIED, mVoiceInteractionServiceUid); } } Loading Loading @@ -364,11 +366,13 @@ final class HotwordDetectionConnection { static final class SoundTriggerCallback extends IRecognitionStatusCallback.Stub { private final HotwordDetectionConnection mHotwordDetectionConnection; private final IHotwordRecognitionStatusCallback mExternalCallback; private final int mVoiceInteractionServiceUid; SoundTriggerCallback(IHotwordRecognitionStatusCallback callback, HotwordDetectionConnection connection) { HotwordDetectionConnection connection, int uid) { mHotwordDetectionConnection = connection; mExternalCallback = callback; mVoiceInteractionServiceUid = uid; } @Override Loading @@ -381,13 +385,15 @@ final class HotwordDetectionConnection { if (useHotwordDetectionService) { HotwordMetricsLogger.writeKeyphraseTriggerEvent( HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__DETECTOR_TYPE__TRUSTED_DETECTOR_DSP, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__KEYPHRASE_TRIGGER); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__KEYPHRASE_TRIGGER, mVoiceInteractionServiceUid); mHotwordDetectionConnection.detectFromDspSource( recognitionEvent, mExternalCallback); } else { HotwordMetricsLogger.writeKeyphraseTriggerEvent( HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__DETECTOR_TYPE__NORMAL_DETECTOR, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__KEYPHRASE_TRIGGER); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__KEYPHRASE_TRIGGER, mVoiceInteractionServiceUid); mExternalCallback.onKeyphraseDetected(recognitionEvent, null); } } Loading services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectorSession.java +2 −2 Original line number Diff line number Diff line Loading @@ -238,7 +238,7 @@ abstract class HotwordDetectorSession { try { mCallback.onStatusReported(status); HotwordMetricsLogger.writeServiceInitResultEvent(getDetectorType(), initResultMetricsResult); initResultMetricsResult, mVoiceInteractionServiceUid); } catch (RemoteException e) { Slog.w(TAG, "Failed to report initialization status: " + e); HotwordMetricsLogger.writeDetectorEvent(getDetectorType(), Loading Loading @@ -269,7 +269,7 @@ abstract class HotwordDetectorSession { try { mCallback.onStatusReported(INITIALIZATION_STATUS_UNKNOWN); HotwordMetricsLogger.writeServiceInitResultEvent(getDetectorType(), METRICS_INIT_UNKNOWN_TIMEOUT); METRICS_INIT_UNKNOWN_TIMEOUT, mVoiceInteractionServiceUid); } catch (RemoteException e) { Slog.w(TAG, "Failed to report initialization status UNKNOWN", e); HotwordMetricsLogger.writeDetectorEvent(getDetectorType(), Loading services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordMetricsLogger.java +6 −6 Original line number Diff line number Diff line Loading @@ -64,28 +64,28 @@ public final class HotwordMetricsLogger { /** * Logs information related to hotword detection service init result. */ public static void writeServiceInitResultEvent(int detectorType, int result) { public static void writeServiceInitResultEvent(int detectorType, int result, int uid) { int metricsDetectorType = getInitMetricsDetectorType(detectorType); FrameworkStatsLog.write(FrameworkStatsLog.HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED, metricsDetectorType, result); metricsDetectorType, result, uid); } /** * Logs information related to hotword detection service restarting. */ public static void writeServiceRestartEvent(int detectorType, int reason) { public static void writeServiceRestartEvent(int detectorType, int reason, int uid) { int metricsDetectorType = getRestartMetricsDetectorType(detectorType); FrameworkStatsLog.write(FrameworkStatsLog.HOTWORD_DETECTION_SERVICE_RESTARTED, metricsDetectorType, reason); metricsDetectorType, reason, uid); } /** * Logs information related to keyphrase trigger. */ public static void writeKeyphraseTriggerEvent(int detectorType, int result) { public static void writeKeyphraseTriggerEvent(int detectorType, int result, int uid) { int metricsDetectorType = getKeyphraseMetricsDetectorType(detectorType); FrameworkStatsLog.write(FrameworkStatsLog.HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED, metricsDetectorType, result); metricsDetectorType, result, uid); } /** Loading services/voiceinteraction/java/com/android/server/voiceinteraction/SoftwareTrustedHotwordDetectorSession.java +8 −4 Original line number Diff line number Diff line Loading @@ -101,12 +101,14 @@ final class SoftwareTrustedHotwordDetectorSession extends HotwordDetectorSession synchronized (mLock) { HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_SOFTWARE, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECTED); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECTED, mVoiceInteractionServiceUid); if (!mPerformingSoftwareHotwordDetection) { Slog.i(TAG, "Hotword detection has already completed"); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_SOFTWARE, METRICS_KEYPHRASE_TRIGGERED_DETECT_UNEXPECTED_CALLBACK); METRICS_KEYPHRASE_TRIGGERED_DETECT_UNEXPECTED_CALLBACK, mVoiceInteractionServiceUid); return; } mPerformingSoftwareHotwordDetection = false; Loading @@ -115,7 +117,8 @@ final class SoftwareTrustedHotwordDetectorSession extends HotwordDetectorSession } catch (SecurityException e) { HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_SOFTWARE, METRICS_KEYPHRASE_TRIGGERED_DETECT_SECURITY_EXCEPTION); METRICS_KEYPHRASE_TRIGGERED_DETECT_SECURITY_EXCEPTION, mVoiceInteractionServiceUid); mSoftwareCallback.onError(); return; } Loading Loading @@ -144,7 +147,8 @@ final class SoftwareTrustedHotwordDetectorSession extends HotwordDetectorSession } HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_SOFTWARE, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED, mVoiceInteractionServiceUid); // onRejected isn't allowed here, and we are not expecting it. } }; Loading Loading
services/voiceinteraction/java/com/android/server/voiceinteraction/DspTrustedHotwordDetectorSession.java +14 −7 Original line number Diff line number Diff line Loading @@ -106,12 +106,14 @@ final class DspTrustedHotwordDetectorSession extends HotwordDetectorSession { } HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECTED); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECTED, mVoiceInteractionServiceUid); if (!mValidatingDspTrigger) { Slog.i(TAG, "Ignoring #onDetected due to a process restart"); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, METRICS_KEYPHRASE_TRIGGERED_DETECT_UNEXPECTED_CALLBACK); METRICS_KEYPHRASE_TRIGGERED_DETECT_UNEXPECTED_CALLBACK, mVoiceInteractionServiceUid); return; } mValidatingDspTrigger = false; Loading @@ -122,7 +124,8 @@ final class DspTrustedHotwordDetectorSession extends HotwordDetectorSession { Slog.i(TAG, "Ignoring #onDetected due to a SecurityException", e); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, METRICS_KEYPHRASE_TRIGGERED_DETECT_SECURITY_EXCEPTION); METRICS_KEYPHRASE_TRIGGERED_DETECT_SECURITY_EXCEPTION, mVoiceInteractionServiceUid); externalCallback.onError(CALLBACK_ONDETECTED_GOT_SECURITY_EXCEPTION); return; } Loading Loading @@ -157,12 +160,14 @@ final class DspTrustedHotwordDetectorSession extends HotwordDetectorSession { } HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED, mVoiceInteractionServiceUid); if (!mValidatingDspTrigger) { Slog.i(TAG, "Ignoring #onRejected due to a process restart"); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, METRICS_KEYPHRASE_TRIGGERED_REJECT_UNEXPECTED_CALLBACK); METRICS_KEYPHRASE_TRIGGERED_REJECT_UNEXPECTED_CALLBACK, mVoiceInteractionServiceUid); return; } mValidatingDspTrigger = false; Loading @@ -187,7 +192,8 @@ final class DspTrustedHotwordDetectorSession extends HotwordDetectorSession { Slog.w(TAG, "Timed out on #detectFromDspSource"); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECT_TIMEOUT); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECT_TIMEOUT, mVoiceInteractionServiceUid); try { externalCallback.onError(CALLBACK_DETECT_TIMEOUT); } catch (RemoteException e) { Loading Loading @@ -220,7 +226,8 @@ final class DspTrustedHotwordDetectorSession extends HotwordDetectorSession { mCallback.onRejected(new HotwordRejectedResult.Builder().build()); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_DSP, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED_FROM_RESTART); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED_FROM_RESTART, mVoiceInteractionServiceUid); } catch (RemoteException e) { Slog.w(TAG, "Failed to call #rejected"); HotwordMetricsLogger.writeDetectorEvent( Loading
services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java +11 −5 Original line number Diff line number Diff line Loading @@ -165,7 +165,8 @@ final class HotwordDetectionConnection { synchronized (mLock) { restartProcessLocked(); HotwordMetricsLogger.writeServiceRestartEvent(mDetectorType, HOTWORD_DETECTION_SERVICE_RESTARTED__REASON__SCHEDULE); HOTWORD_DETECTION_SERVICE_RESTARTED__REASON__SCHEDULE, mVoiceInteractionServiceUid); } }, mReStartPeriodSeconds, mReStartPeriodSeconds, TimeUnit.SECONDS); } Loading Loading @@ -200,7 +201,8 @@ final class HotwordDetectionConnection { // conditions with audio reading in the service. restartProcessLocked(); HotwordMetricsLogger.writeServiceRestartEvent(mDetectorType, HOTWORD_DETECTION_SERVICE_RESTARTED__REASON__AUDIO_SERVICE_DIED); HOTWORD_DETECTION_SERVICE_RESTARTED__REASON__AUDIO_SERVICE_DIED, mVoiceInteractionServiceUid); } } Loading Loading @@ -364,11 +366,13 @@ final class HotwordDetectionConnection { static final class SoundTriggerCallback extends IRecognitionStatusCallback.Stub { private final HotwordDetectionConnection mHotwordDetectionConnection; private final IHotwordRecognitionStatusCallback mExternalCallback; private final int mVoiceInteractionServiceUid; SoundTriggerCallback(IHotwordRecognitionStatusCallback callback, HotwordDetectionConnection connection) { HotwordDetectionConnection connection, int uid) { mHotwordDetectionConnection = connection; mExternalCallback = callback; mVoiceInteractionServiceUid = uid; } @Override Loading @@ -381,13 +385,15 @@ final class HotwordDetectionConnection { if (useHotwordDetectionService) { HotwordMetricsLogger.writeKeyphraseTriggerEvent( HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__DETECTOR_TYPE__TRUSTED_DETECTOR_DSP, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__KEYPHRASE_TRIGGER); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__KEYPHRASE_TRIGGER, mVoiceInteractionServiceUid); mHotwordDetectionConnection.detectFromDspSource( recognitionEvent, mExternalCallback); } else { HotwordMetricsLogger.writeKeyphraseTriggerEvent( HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__DETECTOR_TYPE__NORMAL_DETECTOR, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__KEYPHRASE_TRIGGER); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__KEYPHRASE_TRIGGER, mVoiceInteractionServiceUid); mExternalCallback.onKeyphraseDetected(recognitionEvent, null); } } Loading
services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectorSession.java +2 −2 Original line number Diff line number Diff line Loading @@ -238,7 +238,7 @@ abstract class HotwordDetectorSession { try { mCallback.onStatusReported(status); HotwordMetricsLogger.writeServiceInitResultEvent(getDetectorType(), initResultMetricsResult); initResultMetricsResult, mVoiceInteractionServiceUid); } catch (RemoteException e) { Slog.w(TAG, "Failed to report initialization status: " + e); HotwordMetricsLogger.writeDetectorEvent(getDetectorType(), Loading Loading @@ -269,7 +269,7 @@ abstract class HotwordDetectorSession { try { mCallback.onStatusReported(INITIALIZATION_STATUS_UNKNOWN); HotwordMetricsLogger.writeServiceInitResultEvent(getDetectorType(), METRICS_INIT_UNKNOWN_TIMEOUT); METRICS_INIT_UNKNOWN_TIMEOUT, mVoiceInteractionServiceUid); } catch (RemoteException e) { Slog.w(TAG, "Failed to report initialization status UNKNOWN", e); HotwordMetricsLogger.writeDetectorEvent(getDetectorType(), Loading
services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordMetricsLogger.java +6 −6 Original line number Diff line number Diff line Loading @@ -64,28 +64,28 @@ public final class HotwordMetricsLogger { /** * Logs information related to hotword detection service init result. */ public static void writeServiceInitResultEvent(int detectorType, int result) { public static void writeServiceInitResultEvent(int detectorType, int result, int uid) { int metricsDetectorType = getInitMetricsDetectorType(detectorType); FrameworkStatsLog.write(FrameworkStatsLog.HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED, metricsDetectorType, result); metricsDetectorType, result, uid); } /** * Logs information related to hotword detection service restarting. */ public static void writeServiceRestartEvent(int detectorType, int reason) { public static void writeServiceRestartEvent(int detectorType, int reason, int uid) { int metricsDetectorType = getRestartMetricsDetectorType(detectorType); FrameworkStatsLog.write(FrameworkStatsLog.HOTWORD_DETECTION_SERVICE_RESTARTED, metricsDetectorType, reason); metricsDetectorType, reason, uid); } /** * Logs information related to keyphrase trigger. */ public static void writeKeyphraseTriggerEvent(int detectorType, int result) { public static void writeKeyphraseTriggerEvent(int detectorType, int result, int uid) { int metricsDetectorType = getKeyphraseMetricsDetectorType(detectorType); FrameworkStatsLog.write(FrameworkStatsLog.HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED, metricsDetectorType, result); metricsDetectorType, result, uid); } /** Loading
services/voiceinteraction/java/com/android/server/voiceinteraction/SoftwareTrustedHotwordDetectorSession.java +8 −4 Original line number Diff line number Diff line Loading @@ -101,12 +101,14 @@ final class SoftwareTrustedHotwordDetectorSession extends HotwordDetectorSession synchronized (mLock) { HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_SOFTWARE, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECTED); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__DETECTED, mVoiceInteractionServiceUid); if (!mPerformingSoftwareHotwordDetection) { Slog.i(TAG, "Hotword detection has already completed"); HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_SOFTWARE, METRICS_KEYPHRASE_TRIGGERED_DETECT_UNEXPECTED_CALLBACK); METRICS_KEYPHRASE_TRIGGERED_DETECT_UNEXPECTED_CALLBACK, mVoiceInteractionServiceUid); return; } mPerformingSoftwareHotwordDetection = false; Loading @@ -115,7 +117,8 @@ final class SoftwareTrustedHotwordDetectorSession extends HotwordDetectorSession } catch (SecurityException e) { HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_SOFTWARE, METRICS_KEYPHRASE_TRIGGERED_DETECT_SECURITY_EXCEPTION); METRICS_KEYPHRASE_TRIGGERED_DETECT_SECURITY_EXCEPTION, mVoiceInteractionServiceUid); mSoftwareCallback.onError(); return; } Loading Loading @@ -144,7 +147,8 @@ final class SoftwareTrustedHotwordDetectorSession extends HotwordDetectorSession } HotwordMetricsLogger.writeKeyphraseTriggerEvent( HotwordDetector.DETECTOR_TYPE_TRUSTED_HOTWORD_SOFTWARE, HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED); HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED, mVoiceInteractionServiceUid); // onRejected isn't allowed here, and we are not expecting it. } }; Loading