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