1// Signature format: 2.0 2package android.app.ondeviceintelligence { 3 4 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public interface DownloadCallback { 5 method public void onDownloadCompleted(@NonNull android.os.PersistableBundle); 6 method public void onDownloadFailed(int, @Nullable String, @NonNull android.os.PersistableBundle); 7 method public default void onDownloadProgress(long); 8 method public default void onDownloadStarted(long); 9 field public static final int DOWNLOAD_FAILURE_STATUS_DOWNLOADING = 3; // 0x3 10 field public static final int DOWNLOAD_FAILURE_STATUS_NETWORK_FAILURE = 2; // 0x2 11 field public static final int DOWNLOAD_FAILURE_STATUS_NOT_ENOUGH_DISK_SPACE = 1; // 0x1 12 field public static final int DOWNLOAD_FAILURE_STATUS_UNAVAILABLE = 4; // 0x4 13 field public static final int DOWNLOAD_FAILURE_STATUS_UNKNOWN = 0; // 0x0 14 } 15 16 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public final class Feature implements android.os.Parcelable { 17 method public int describeContents(); 18 method @NonNull public android.os.PersistableBundle getFeatureParams(); 19 method public int getId(); 20 method @Nullable public String getModelName(); 21 method @Nullable public String getName(); 22 method public int getType(); 23 method public int getVariant(); 24 method public void writeToParcel(@NonNull android.os.Parcel, int); 25 field @NonNull public static final android.os.Parcelable.Creator<android.app.ondeviceintelligence.Feature> CREATOR; 26 } 27 28 public static final class Feature.Builder { 29 ctor public Feature.Builder(int); 30 method @NonNull public android.app.ondeviceintelligence.Feature build(); 31 method @NonNull public android.app.ondeviceintelligence.Feature.Builder setFeatureParams(@NonNull android.os.PersistableBundle); 32 method @NonNull public android.app.ondeviceintelligence.Feature.Builder setModelName(@NonNull String); 33 method @NonNull public android.app.ondeviceintelligence.Feature.Builder setName(@NonNull String); 34 method @NonNull public android.app.ondeviceintelligence.Feature.Builder setType(int); 35 method @NonNull public android.app.ondeviceintelligence.Feature.Builder setVariant(int); 36 } 37 38 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public final class FeatureDetails implements android.os.Parcelable { 39 ctor public FeatureDetails(int, @NonNull android.os.PersistableBundle); 40 ctor public FeatureDetails(int); 41 method public int describeContents(); 42 method @NonNull public android.os.PersistableBundle getFeatureDetailParams(); 43 method public int getFeatureStatus(); 44 method public void writeToParcel(@NonNull android.os.Parcel, int); 45 field @NonNull public static final android.os.Parcelable.Creator<android.app.ondeviceintelligence.FeatureDetails> CREATOR; 46 field public static final int FEATURE_STATUS_AVAILABLE = 3; // 0x3 47 field public static final int FEATURE_STATUS_DOWNLOADABLE = 1; // 0x1 48 field public static final int FEATURE_STATUS_DOWNLOADING = 2; // 0x2 49 field public static final int FEATURE_STATUS_SERVICE_UNAVAILABLE = 4; // 0x4 50 field public static final int FEATURE_STATUS_UNAVAILABLE = 0; // 0x0 51 } 52 53 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence_module") public final class InferenceInfo implements android.os.Parcelable { 54 method public int describeContents(); 55 method public long getEndTimeMillis(); 56 method public long getStartTimeMillis(); 57 method public long getSuspendedTimeMillis(); 58 method public int getUid(); 59 method public void writeToParcel(@NonNull android.os.Parcel, int); 60 field @NonNull public static final android.os.Parcelable.Creator<android.app.ondeviceintelligence.InferenceInfo> CREATOR; 61 } 62 63 public static final class InferenceInfo.Builder { 64 ctor public InferenceInfo.Builder(int); 65 method @NonNull public android.app.ondeviceintelligence.InferenceInfo build(); 66 method @NonNull public android.app.ondeviceintelligence.InferenceInfo.Builder setEndTimeMillis(long); 67 method @NonNull public android.app.ondeviceintelligence.InferenceInfo.Builder setStartTimeMillis(long); 68 method @NonNull public android.app.ondeviceintelligence.InferenceInfo.Builder setSuspendedTimeMillis(long); 69 } 70 71 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public class OnDeviceIntelligenceException extends java.lang.Exception { 72 ctor public OnDeviceIntelligenceException(int, @NonNull String, @NonNull android.os.PersistableBundle); 73 ctor public OnDeviceIntelligenceException(int, @NonNull android.os.PersistableBundle); 74 ctor public OnDeviceIntelligenceException(int, @NonNull String); 75 ctor public OnDeviceIntelligenceException(int); 76 method public int getErrorCode(); 77 method @NonNull public android.os.PersistableBundle getErrorParams(); 78 field public static final int ON_DEVICE_INTELLIGENCE_SERVICE_UNAVAILABLE = 100; // 0x64 79 field public static final int PROCESSING_ERROR_BAD_DATA = 2; // 0x2 80 field public static final int PROCESSING_ERROR_BAD_REQUEST = 3; // 0x3 81 field public static final int PROCESSING_ERROR_BUSY = 9; // 0x9 82 field public static final int PROCESSING_ERROR_CANCELLED = 7; // 0x7 83 field public static final int PROCESSING_ERROR_COMPUTE_ERROR = 5; // 0x5 84 field public static final int PROCESSING_ERROR_INTERNAL = 14; // 0xe 85 field public static final int PROCESSING_ERROR_IPC_ERROR = 6; // 0x6 86 field public static final int PROCESSING_ERROR_NOT_AVAILABLE = 8; // 0x8 87 field public static final int PROCESSING_ERROR_REQUEST_NOT_SAFE = 4; // 0x4 88 field public static final int PROCESSING_ERROR_REQUEST_TOO_LARGE = 12; // 0xc 89 field public static final int PROCESSING_ERROR_RESPONSE_NOT_SAFE = 11; // 0xb 90 field public static final int PROCESSING_ERROR_SAFETY_ERROR = 10; // 0xa 91 field public static final int PROCESSING_ERROR_SERVICE_UNAVAILABLE = 15; // 0xf 92 field public static final int PROCESSING_ERROR_SUSPENDED = 13; // 0xd 93 field public static final int PROCESSING_ERROR_UNKNOWN = 1; // 0x1 94 field public static final int PROCESSING_UPDATE_STATUS_CONNECTION_FAILED = 200; // 0xc8 95 } 96 97 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public final class OnDeviceIntelligenceManager { 98 method @RequiresPermission(android.Manifest.permission.USE_ON_DEVICE_INTELLIGENCE) public void getFeature(int, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.app.ondeviceintelligence.Feature,android.app.ondeviceintelligence.OnDeviceIntelligenceException>); 99 method @RequiresPermission(android.Manifest.permission.USE_ON_DEVICE_INTELLIGENCE) public void getFeatureDetails(@NonNull android.app.ondeviceintelligence.Feature, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.app.ondeviceintelligence.FeatureDetails,android.app.ondeviceintelligence.OnDeviceIntelligenceException>); 100 method @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence_module") @NonNull @RequiresPermission(android.Manifest.permission.DUMP) public java.util.List<android.app.ondeviceintelligence.InferenceInfo> getLatestInferenceInfo(long); 101 method @Nullable @RequiresPermission(android.Manifest.permission.USE_ON_DEVICE_INTELLIGENCE) public String getRemoteServicePackageName(); 102 method @RequiresPermission(android.Manifest.permission.USE_ON_DEVICE_INTELLIGENCE) public void getVersion(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.LongConsumer); 103 method @RequiresPermission(android.Manifest.permission.USE_ON_DEVICE_INTELLIGENCE) public void listFeatures(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.util.List<android.app.ondeviceintelligence.Feature>,android.app.ondeviceintelligence.OnDeviceIntelligenceException>); 104 method @RequiresPermission(android.Manifest.permission.USE_ON_DEVICE_INTELLIGENCE) public void processRequest(@NonNull android.app.ondeviceintelligence.Feature, @NonNull android.os.Bundle, int, @Nullable android.os.CancellationSignal, @Nullable android.app.ondeviceintelligence.ProcessingSignal, @NonNull java.util.concurrent.Executor, @NonNull android.app.ondeviceintelligence.ProcessingCallback); 105 method @RequiresPermission(android.Manifest.permission.USE_ON_DEVICE_INTELLIGENCE) public void processRequestStreaming(@NonNull android.app.ondeviceintelligence.Feature, @NonNull android.os.Bundle, int, @Nullable android.os.CancellationSignal, @Nullable android.app.ondeviceintelligence.ProcessingSignal, @NonNull java.util.concurrent.Executor, @NonNull android.app.ondeviceintelligence.StreamingProcessingCallback); 106 method @RequiresPermission(android.Manifest.permission.USE_ON_DEVICE_INTELLIGENCE) public void requestFeatureDownload(@NonNull android.app.ondeviceintelligence.Feature, @Nullable android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull android.app.ondeviceintelligence.DownloadCallback); 107 method @RequiresPermission(android.Manifest.permission.USE_ON_DEVICE_INTELLIGENCE) public void requestTokenInfo(@NonNull android.app.ondeviceintelligence.Feature, @NonNull android.os.Bundle, @Nullable android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.app.ondeviceintelligence.TokenInfo,android.app.ondeviceintelligence.OnDeviceIntelligenceException>); 108 field public static final int REQUEST_TYPE_EMBEDDINGS = 2; // 0x2 109 field public static final int REQUEST_TYPE_INFERENCE = 0; // 0x0 110 field public static final int REQUEST_TYPE_PREPARE = 1; // 0x1 111 } 112 113 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public interface ProcessingCallback { 114 method public default void onDataAugmentRequest(@NonNull android.os.Bundle, @NonNull java.util.function.Consumer<android.os.Bundle>); 115 method public void onError(@NonNull android.app.ondeviceintelligence.OnDeviceIntelligenceException); 116 method public void onResult(@NonNull android.os.Bundle); 117 } 118 119 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public final class ProcessingSignal { 120 ctor public ProcessingSignal(); 121 method public void sendSignal(@NonNull android.os.PersistableBundle); 122 method public void setOnProcessingSignalCallback(@NonNull java.util.concurrent.Executor, @Nullable android.app.ondeviceintelligence.ProcessingSignal.OnProcessingSignalCallback); 123 } 124 125 public static interface ProcessingSignal.OnProcessingSignalCallback { 126 method public void onSignalReceived(@NonNull android.os.PersistableBundle); 127 } 128 129 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public interface StreamingProcessingCallback extends android.app.ondeviceintelligence.ProcessingCallback { 130 method public void onPartialResult(@NonNull android.os.Bundle); 131 } 132 133 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public final class TokenInfo implements android.os.Parcelable { 134 ctor public TokenInfo(long, @NonNull android.os.PersistableBundle); 135 ctor public TokenInfo(long); 136 method public int describeContents(); 137 method public long getCount(); 138 method @NonNull public android.os.PersistableBundle getInfoParams(); 139 method public void writeToParcel(@NonNull android.os.Parcel, int); 140 field @NonNull public static final android.os.Parcelable.Creator<android.app.ondeviceintelligence.TokenInfo> CREATOR; 141 } 142 143} 144 145package android.service.ondeviceintelligence { 146 147 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public abstract class OnDeviceIntelligenceService extends android.app.Service { 148 ctor public OnDeviceIntelligenceService(); 149 method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent); 150 method public abstract void onDownloadFeature(int, @NonNull android.app.ondeviceintelligence.Feature, @Nullable android.os.CancellationSignal, @NonNull android.app.ondeviceintelligence.DownloadCallback); 151 method public abstract void onGetFeature(int, int, @NonNull android.os.OutcomeReceiver<android.app.ondeviceintelligence.Feature,android.app.ondeviceintelligence.OnDeviceIntelligenceException>); 152 method public abstract void onGetFeatureDetails(int, @NonNull android.app.ondeviceintelligence.Feature, @NonNull android.os.OutcomeReceiver<android.app.ondeviceintelligence.FeatureDetails,android.app.ondeviceintelligence.OnDeviceIntelligenceException>); 153 method public abstract void onGetReadOnlyFeatureFileDescriptorMap(@NonNull android.app.ondeviceintelligence.Feature, @NonNull java.util.function.Consumer<java.util.Map<java.lang.String,android.os.ParcelFileDescriptor>>); 154 method public abstract void onGetVersion(@NonNull java.util.function.LongConsumer); 155 method public abstract void onInferenceServiceConnected(); 156 method public abstract void onInferenceServiceDisconnected(); 157 method public abstract void onListFeatures(int, @NonNull android.os.OutcomeReceiver<java.util.List<android.app.ondeviceintelligence.Feature>,android.app.ondeviceintelligence.OnDeviceIntelligenceException>); 158 method public void onReady(); 159 method public final void updateProcessingState(@NonNull android.os.Bundle, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.os.PersistableBundle,android.app.ondeviceintelligence.OnDeviceIntelligenceException>); 160 field public static final String SERVICE_INTERFACE = "android.service.ondeviceintelligence.OnDeviceIntelligenceService"; 161 } 162 163 @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public abstract class OnDeviceSandboxedInferenceService extends android.app.Service { 164 ctor public OnDeviceSandboxedInferenceService(); 165 method public final void fetchFeatureFileDescriptorMap(@NonNull android.app.ondeviceintelligence.Feature, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.util.Map<java.lang.String,android.os.ParcelFileDescriptor>>); 166 method @NonNull public java.util.concurrent.Executor getCallbackExecutor(); 167 method public final void getReadOnlyFileDescriptor(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.os.ParcelFileDescriptor>) throws java.io.FileNotFoundException; 168 method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent); 169 method @NonNull public abstract void onProcessRequest(int, @NonNull android.app.ondeviceintelligence.Feature, @NonNull android.os.Bundle, int, @Nullable android.os.CancellationSignal, @Nullable android.app.ondeviceintelligence.ProcessingSignal, @NonNull android.app.ondeviceintelligence.ProcessingCallback); 170 method @NonNull public abstract void onProcessRequestStreaming(int, @NonNull android.app.ondeviceintelligence.Feature, @NonNull android.os.Bundle, int, @Nullable android.os.CancellationSignal, @Nullable android.app.ondeviceintelligence.ProcessingSignal, @NonNull android.app.ondeviceintelligence.StreamingProcessingCallback); 171 method @NonNull public abstract void onTokenInfoRequest(int, @NonNull android.app.ondeviceintelligence.Feature, @NonNull android.os.Bundle, @Nullable android.os.CancellationSignal, @NonNull android.os.OutcomeReceiver<android.app.ondeviceintelligence.TokenInfo,android.app.ondeviceintelligence.OnDeviceIntelligenceException>); 172 method public abstract void onUpdateProcessingState(@NonNull android.os.Bundle, @NonNull android.os.OutcomeReceiver<android.os.PersistableBundle,android.app.ondeviceintelligence.OnDeviceIntelligenceException>); 173 method public final java.io.FileInputStream openFileInput(@NonNull String) throws java.io.FileNotFoundException; 174 field public static final String SERVICE_INTERFACE = "android.service.ondeviceintelligence.OnDeviceSandboxedInferenceService"; 175 } 176 177} 178 179