Merge "HotwordDetectionService: Remove deprecated-at-birth APIs." into sc-dev am: 3cff27f756
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14676746 Change-Id: I7c0408bcfe2a7be50fdc8100a7c49d74cfb710f8
This commit is contained in:
@@ -10561,9 +10561,7 @@ package android.service.voice {
|
||||
ctor public HotwordDetectionService();
|
||||
method public static int getMaxCustomInitializationStatus();
|
||||
method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent);
|
||||
method @Deprecated public void onDetect(@NonNull android.os.ParcelFileDescriptor, @NonNull android.media.AudioFormat, long, @NonNull android.service.voice.HotwordDetectionService.Callback);
|
||||
method public void onDetect(@NonNull android.service.voice.AlwaysOnHotwordDetector.EventPayload, long, @NonNull android.service.voice.HotwordDetectionService.Callback);
|
||||
method @Deprecated public void onDetect(@NonNull android.os.ParcelFileDescriptor, @NonNull android.media.AudioFormat, @NonNull android.service.voice.HotwordDetectionService.Callback);
|
||||
method public void onDetect(@NonNull android.service.voice.HotwordDetectionService.Callback);
|
||||
method public void onDetect(@NonNull android.os.ParcelFileDescriptor, @NonNull android.media.AudioFormat, @Nullable android.os.PersistableBundle, @NonNull android.service.voice.HotwordDetectionService.Callback);
|
||||
method public void onUpdateState(@Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory, long, @Nullable java.util.function.IntConsumer);
|
||||
@@ -10608,7 +10606,6 @@ package android.service.voice {
|
||||
public class VoiceInteractionService extends android.app.Service {
|
||||
method @NonNull public final android.service.voice.AlwaysOnHotwordDetector createAlwaysOnHotwordDetector(String, java.util.Locale, android.service.voice.AlwaysOnHotwordDetector.Callback);
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_HOTWORD_DETECTION) public final android.service.voice.AlwaysOnHotwordDetector createAlwaysOnHotwordDetector(String, java.util.Locale, @Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory, android.service.voice.AlwaysOnHotwordDetector.Callback);
|
||||
method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_HOTWORD_DETECTION) public final android.service.voice.HotwordDetector createHotwordDetector(@NonNull android.media.AudioFormat, @Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory, @NonNull android.service.voice.HotwordDetector.Callback);
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_HOTWORD_DETECTION) public final android.service.voice.HotwordDetector createHotwordDetector(@Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory, @NonNull android.service.voice.HotwordDetector.Callback);
|
||||
method @NonNull @RequiresPermission("android.permission.MANAGE_VOICE_KEYPHRASES") public final android.media.voice.KeyphraseModelManager createKeyphraseModelManager();
|
||||
}
|
||||
|
||||
@@ -228,36 +228,6 @@ public abstract class HotwordDetectionService extends Service {
|
||||
return MAXIMUM_NUMBER_OF_INITIALIZATION_STATUS_CUSTOM_ERROR;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the device hardware (such as a DSP) detected the hotword, to request second stage
|
||||
* validation before handing over the audio to the {@link AlwaysOnHotwordDetector}.
|
||||
* <p>
|
||||
* After {@code callback} is invoked or {@code timeoutMillis} has passed, the system closes
|
||||
* {@code audioStream} and invokes the appropriate {@link AlwaysOnHotwordDetector.Callback
|
||||
* callback}.
|
||||
*
|
||||
* @param audioStream Stream containing audio bytes returned from DSP
|
||||
* @param audioFormat Format of the supplied audio
|
||||
* @param timeoutMillis Timeout in milliseconds for the operation to invoke the callback. If
|
||||
* the application fails to abide by the timeout, system will close the
|
||||
* microphone and cancel the operation.
|
||||
* @param callback The callback to use for responding to the detection request.
|
||||
* @deprecated Implement
|
||||
* {@link #onDetect(AlwaysOnHotwordDetector.EventPayload, long, Callback)} instead.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Deprecated
|
||||
@SystemApi
|
||||
public void onDetect(
|
||||
@NonNull ParcelFileDescriptor audioStream,
|
||||
@NonNull AudioFormat audioFormat,
|
||||
@DurationMillisLong long timeoutMillis,
|
||||
@NonNull Callback callback) {
|
||||
// TODO: Add a helpful error message.
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the device hardware (such as a DSP) detected the hotword, to request second stage
|
||||
* validation before handing over the audio to the {@link AlwaysOnHotwordDetector}.
|
||||
@@ -314,34 +284,6 @@ public abstract class HotwordDetectionService extends Service {
|
||||
// TODO: Handle the unimplemented case by throwing?
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the {@link VoiceInteractionService} requests that this service
|
||||
* {@link HotwordDetector#startRecognition() start} hotword recognition on audio coming directly
|
||||
* from the device microphone.
|
||||
* <p>
|
||||
* On such a request, the system streams mic audio to this service through {@code audioStream}.
|
||||
* Audio is streamed until {@link HotwordDetector#stopRecognition()} is called, at which point
|
||||
* the system closes {code audioStream}.
|
||||
* <p>
|
||||
* On successful detection of a hotword within {@code audioStream}, call
|
||||
* {@link Callback#onDetected(HotwordDetectedResult)}. The system continues to stream audio
|
||||
* through {@code audioStream}; {@code callback} is reusable.
|
||||
*
|
||||
* @param audioStream Stream containing audio bytes returned from a microphone
|
||||
* @param audioFormat Format of the supplied audio
|
||||
* @param callback The callback to use for responding to the detection request.
|
||||
* {@link Callback#onRejected(HotwordRejectedResult) callback.onRejected} cannot be used here.
|
||||
* @deprecated Implement {@link #onDetect(Callback)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public void onDetect(
|
||||
@NonNull ParcelFileDescriptor audioStream,
|
||||
@NonNull AudioFormat audioFormat,
|
||||
@NonNull Callback callback) {
|
||||
// TODO: Add a helpful error message.
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the {@link VoiceInteractionService} requests that this service
|
||||
* {@link HotwordDetector#startRecognition() start} hotword recognition on audio coming directly
|
||||
|
||||
@@ -29,7 +29,6 @@ import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.hardware.soundtrigger.KeyphraseEnrollmentInfo;
|
||||
import android.media.AudioFormat;
|
||||
import android.media.voice.KeyphraseModelManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
@@ -390,64 +389,6 @@ public class VoiceInteractionService extends Service {
|
||||
return mHotwordDetector;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a {@link HotwordDetector} and initializes the application's
|
||||
* {@link HotwordDetectionService} using {@code options} and {code sharedMemory}.
|
||||
*
|
||||
* <p>To be able to call this, you need to set android:hotwordDetectionService in the
|
||||
* android.voice_interaction metadata file to a valid hotword detection service, and set
|
||||
* android:isolatedProcess="true" in the hotword detection service's declaration. Otherwise,
|
||||
* this throws an {@link IllegalStateException}.
|
||||
*
|
||||
* <p>This instance must be retained and used by the client.
|
||||
* Calling this a second time invalidates the previously created hotword detector
|
||||
* which can no longer be used to manage recognition.
|
||||
*
|
||||
* <p>Using this has a noticeable impact on battery, since the microphone is kept open
|
||||
* for the lifetime of the recognition {@link HotwordDetector#startRecognition() session}. On
|
||||
* devices where hardware filtering is available (such as through a DSP), it's highly
|
||||
* recommended to use {@link #createAlwaysOnHotwordDetector} instead.
|
||||
*
|
||||
* @param audioFormat Format of the audio to be passed to {@link HotwordDetectionService}.
|
||||
* @param options Application configuration data to be provided to the
|
||||
* {@link HotwordDetectionService}. PersistableBundle does not allow any remotable objects or
|
||||
* other contents that can be used to communicate with other processes.
|
||||
* @param sharedMemory The unrestricted data blob to be provided to the
|
||||
* {@link HotwordDetectionService}. Use this to provide hotword models or other such data to the
|
||||
* sandboxed process.
|
||||
* @param callback The callback to notify of detection events.
|
||||
* @return A hotword detector for the given audio format.
|
||||
*
|
||||
* @see #createAlwaysOnHotwordDetector(String, Locale, PersistableBundle, SharedMemory,
|
||||
* AlwaysOnHotwordDetector.Callback)
|
||||
* @deprecated Use
|
||||
* {@link #createHotwordDetector(PersistableBundle, SharedMemory, HotwordDetector.Callback)}
|
||||
* instead.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Deprecated
|
||||
@SystemApi
|
||||
@RequiresPermission(Manifest.permission.MANAGE_HOTWORD_DETECTION)
|
||||
@NonNull
|
||||
public final HotwordDetector createHotwordDetector(
|
||||
@NonNull AudioFormat audioFormat,
|
||||
@Nullable PersistableBundle options,
|
||||
@Nullable SharedMemory sharedMemory,
|
||||
@NonNull HotwordDetector.Callback callback) {
|
||||
if (mSystemService == null) {
|
||||
throw new IllegalStateException("Not available until onReady() is called");
|
||||
}
|
||||
synchronized (mLock) {
|
||||
// Allow only one concurrent recognition via the APIs.
|
||||
safelyShutdownHotwordDetector();
|
||||
mSoftwareHotwordDetector =
|
||||
new SoftwareHotwordDetector(
|
||||
mSystemService, audioFormat, options, sharedMemory, callback);
|
||||
}
|
||||
return mSoftwareHotwordDetector;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a {@link HotwordDetector} and initializes the application's
|
||||
* {@link HotwordDetectionService} using {@code options} and {code sharedMemory}.
|
||||
|
||||
Reference in New Issue
Block a user