blob: 885749d83c524a879802c7ba110cd992435bb0bf [file] [log] [blame]
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -08001/*
2 * Copyright (C) 2013 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware;
18
19import android.hardware.ICamera;
20import android.hardware.ICameraClient;
21import android.hardware.camera2.ICameraDeviceUser;
22import android.hardware.camera2.ICameraDeviceCallbacks;
Cliff Wud8cae102021-03-11 01:37:42 +080023import android.hardware.camera2.ICameraInjectionCallback;
24import android.hardware.camera2.ICameraInjectionSession;
Shuzhen Wang045be6c2023-10-12 10:01:10 -070025import android.hardware.camera2.params.SessionConfiguration;
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -080026import android.hardware.camera2.params.VendorTagDescriptor;
Emilian Peev71c73a22017-03-21 16:35:51 +000027import android.hardware.camera2.params.VendorTagDescriptorCache;
Jayant Chowdhary2bbdce42020-01-12 14:55:41 -080028import android.hardware.camera2.utils.ConcurrentCameraIdCombination;
29import android.hardware.camera2.utils.CameraIdAndSessionConfiguration;
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -080030import android.hardware.camera2.impl.CameraMetadataNative;
31import android.hardware.ICameraServiceListener;
32import android.hardware.CameraInfo;
malikakash73125c62023-07-21 22:44:34 +000033import android.hardware.CameraIdRemapping;
Eino-Ville Talvalaf51fca22016-12-13 11:25:55 -080034import android.hardware.CameraStatus;
Avichal Rakesh6e57a2b2023-05-01 17:53:37 -070035import android.hardware.CameraExtensionSessionStats;
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -080036
37/**
38 * Binder interface for the native camera service running in mediaserver.
39 *
40 * @hide
41 */
42interface ICameraService
43{
44 /**
45 * All camera service and device Binder calls may return a
46 * ServiceSpecificException with the following error codes
47 */
48 const int ERROR_PERMISSION_DENIED = 1;
49 const int ERROR_ALREADY_EXISTS = 2;
50 const int ERROR_ILLEGAL_ARGUMENT = 3;
51 const int ERROR_DISCONNECTED = 4;
52 const int ERROR_TIMED_OUT = 5;
53 const int ERROR_DISABLED = 6;
54 const int ERROR_CAMERA_IN_USE = 7;
55 const int ERROR_MAX_CAMERAS_IN_USE = 8;
56 const int ERROR_DEPRECATED_HAL = 9;
57 const int ERROR_INVALID_OPERATION = 10;
58
59 /**
60 * Types for getNumberOfCameras
61 */
62 const int CAMERA_TYPE_BACKWARD_COMPATIBLE = 0;
63 const int CAMERA_TYPE_ALL = 1;
64
65 /**
Biswarup Pal37a75182024-01-16 15:53:35 +000066 * Return the number of camera devices available in the system.
67 *
68 * @param type The type of the camera, can be either CAMERA_TYPE_BACKWARD_COMPATIBLE
69 * or CAMERA_TYPE_ALL.
70 * @param deviceId The device id of the context associated with the caller.
71 * @param devicePolicy The camera policy of the device of the associated context (default
72 * policy for default device context). Only virtual cameras would be exposed
73 * only for custom policy and only real cameras would be exposed for default
74 * policy.
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -080075 */
Biswarup Pal37a75182024-01-16 15:53:35 +000076 int getNumberOfCameras(int type, int deviceId, int devicePolicy);
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -080077
78 /**
Biswarup Pal37a75182024-01-16 15:53:35 +000079 * Fetch basic camera information for a camera.
80 *
81 * @param cameraId The ID of the camera to fetch information for.
82 * @param overrideToPortrait Whether to override the sensor orientation information to
83 * correspond to portrait.
84 * @param deviceId The device id of the context associated with the caller.
85 * @param devicePolicy The camera policy of the device of the associated context (default
86 * policy for default device context). Only virtual cameras would be exposed
87 * only for custom policy and only real cameras would be exposed for default
88 * policy.
89 * @return CameraInfo for the camera.
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -080090 */
Biswarup Pal37a75182024-01-16 15:53:35 +000091 CameraInfo getCameraInfo(int cameraId, boolean overrideToPortrait, int deviceId,
92 int devicePolicy);
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -080093
94 /**
95 * Default UID/PID values for non-privileged callers of
Eino-Ville Talvalaa976df82019-06-13 18:01:58 -070096 * connect() and connectDevice()
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -080097 */
98 const int USE_CALLING_UID = -1;
99 const int USE_CALLING_PID = -1;
100
101 /**
Biswarup Pal37a75182024-01-16 15:53:35 +0000102 * Open a camera device through the old camera API.
103 *
104 * @param cameraId The ID of the camera to open.
105 * @param opPackageName The package name to report for the app-ops.
106 * @param clientUid UID for the calling client.
107 * @param clientPid PID for the calling client.
108 * @param overrideToPortrait Whether to override the sensor orientation information to
109 * correspond to portrait.
110 * @param forceSlowJpegMode Whether to force slow jpeg mode.
111 * @param deviceId The device id of the context associated with the caller.
112 * @param devicePolicy The camera policy of the device of the associated context (default
113 * policy for default device context). Only virtual cameras would be exposed
114 * only for custom policy and only real cameras would be exposed for default
115 * policy.
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800116 */
117 ICamera connect(ICameraClient client,
118 int cameraId,
Austin Borger1c1bee02023-06-01 16:51:35 -0700119 @utf8InCpp String opPackageName,
Shuzhen Wangd4abdf72021-05-28 11:22:50 -0700120 int clientUid, int clientPid,
Austin Borger18b30a72022-10-27 12:20:29 -0700121 int targetSdkVersion,
Chengfei Taobe683db2023-01-31 18:52:49 +0000122 boolean overrideToPortrait,
Biswarup Pal37a75182024-01-16 15:53:35 +0000123 boolean forceSlowJpegMode,
124 int deviceId,
125 int devicePolicy);
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800126
127 /**
Biswarup Pal37a75182024-01-16 15:53:35 +0000128 * Open a camera device through the new camera API.
129 * Only supported for device HAL versions >= 3.2.
130 *
131 * @param cameraId The ID of the camera to open.
132 * @param opPackageName The package name to report for the app-ops.
133 * @param clientUid UID for the calling client.
134 * @param overrideToPortrait Whether to override the sensor orientation information to
135 * correspond to portrait.
136 * @param deviceId The device id of the context associated with the caller.
137 * @param devicePolicy The camera policy of the device of the associated context (default
138 * policy for default device context). Only virtual cameras would be exposed
139 * only for custom policy and only real cameras would be exposed for default
140 * policy.
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800141 */
142 ICameraDeviceUser connectDevice(ICameraDeviceCallbacks callbacks,
Austin Borger1c1bee02023-06-01 16:51:35 -0700143 @utf8InCpp String cameraId,
144 @utf8InCpp String opPackageName,
145 @nullable @utf8InCpp String featureId,
Shuzhen Wangd4abdf72021-05-28 11:22:50 -0700146 int clientUid, int oomScoreOffset,
Austin Borger18b30a72022-10-27 12:20:29 -0700147 int targetSdkVersion,
Biswarup Pal37a75182024-01-16 15:53:35 +0000148 boolean overrideToPortrait,
149 int deviceId,
150 int devicePolicy);
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800151
152 /**
Eino-Ville Talvalaf51fca22016-12-13 11:25:55 -0800153 * Add listener for changes to camera device and flashlight state.
154 *
155 * Also returns the set of currently-known camera IDs and state of each device.
156 * Adding a listener will trigger the torch status listener to fire for all
Emilian Peev53722fa2019-02-22 17:47:20 -0800157 * devices that have a flash unit.
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800158 */
Eino-Ville Talvalaf51fca22016-12-13 11:25:55 -0800159 CameraStatus[] addListener(ICameraServiceListener listener);
160
161 /**
Jayant Chowdhary2bbdce42020-01-12 14:55:41 -0800162 * Get a list of combinations of camera ids which support concurrent streaming.
163 *
164 */
Jayant Chowdharycad23c22020-03-10 15:04:59 -0700165 ConcurrentCameraIdCombination[] getConcurrentCameraIds();
Jayant Chowdhary2bbdce42020-01-12 14:55:41 -0800166
167 /**
168 * Check whether a particular set of session configurations are concurrently supported by the
169 * corresponding camera ids.
170 *
171 * @param sessions the set of camera id and session configuration pairs to be queried.
Shuzhen Wangd4abdf72021-05-28 11:22:50 -0700172 * @param targetSdkVersion the target sdk level of the application calling this function.
Jayant Chowdhary2bbdce42020-01-12 14:55:41 -0800173 * @return true - the set of concurrent camera id and stream combinations is supported.
174 * false - the set of concurrent camera id and stream combinations is not supported
175 * OR the method was called with a set of camera ids not returned by
Jayant Chowdharycad23c22020-03-10 15:04:59 -0700176 * getConcurrentCameraIds().
Jayant Chowdhary2bbdce42020-01-12 14:55:41 -0800177 */
178 boolean isConcurrentSessionConfigurationSupported(
Shuzhen Wangd4abdf72021-05-28 11:22:50 -0700179 in CameraIdAndSessionConfiguration[] sessions,
180 int targetSdkVersion);
Jayant Chowdhary2bbdce42020-01-12 14:55:41 -0800181
182 /**
malikakash73125c62023-07-21 22:44:34 +0000183 * Remap Camera Ids in the CameraService.
184 *
185 * Once this is in effect, all binder calls in the ICameraService that
186 * use logicalCameraId should consult remapping state to arrive at the
187 * correct cameraId to perform the operation on.
188 *
189 * Note: Before the new cameraIdRemapping state is applied, the previous
190 * state is cleared.
191 *
192 * @param cameraIdRemapping the camera ids to remap. Sending an unpopulated
193 * cameraIdRemapping object will result in clearing of any previous
194 * cameraIdRemapping state in the camera service.
195 */
196 void remapCameraIds(in CameraIdRemapping cameraIdRemapping);
197
198 /**
malikakash22af94c2023-12-04 18:13:14 +0000199 * Inject Session Params into an existing camera session.
200 *
201 * @param cameraId the camera id session to inject session params into. Note that
202 * if there is no active session for the input cameraid, this operation
203 * will be a no-op. In addition, future camera sessions for cameraid will
204 * not be affected.
205 * @param sessionParams the session params to override for the existing session.
206 */
207 void injectSessionParams(@utf8InCpp String cameraId,
208 in CameraMetadataNative sessionParams);
209
210 /**
Eino-Ville Talvalaf51fca22016-12-13 11:25:55 -0800211 * Remove listener for changes to camera device and flashlight state.
212 */
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800213 void removeListener(ICameraServiceListener listener);
214
215 /**
216 * Read the static camera metadata for a camera device.
217 * Only supported for device HAL versions >= 3.2
Biswarup Pal37a75182024-01-16 15:53:35 +0000218 *
219 * @param cameraId The ID of the camera to fetch metadata for.
220 * @param overrideToPortrait Whether to override the sensor orientation information to
221 * correspond to portrait.
222 * @param deviceId The device id of the context associated with the caller.
223 * @param devicePolicy The camera policy of the device of the associated context (default
224 * policy for default device context). Only virtual cameras would be exposed
225 * only for custom policy and only real cameras would be exposed for default
226 * policy.
227 * @return Characteristics for the given camera.
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800228 */
Austin Borger1c1bee02023-06-01 16:51:35 -0700229 CameraMetadataNative getCameraCharacteristics(@utf8InCpp String cameraId, int targetSdkVersion,
Biswarup Pal37a75182024-01-16 15:53:35 +0000230 boolean overrideToPortrait, int deviceId, int devicePolicy);
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800231
232 /**
233 * Read in the vendor tag descriptors from the camera module HAL.
234 * Intended to be used by the native code of CameraMetadataNative to correctly
235 * interpret camera metadata with vendor tags.
236 */
237 VendorTagDescriptor getCameraVendorTagDescriptor();
238
239 /**
Emilian Peev71c73a22017-03-21 16:35:51 +0000240 * Retrieve the vendor tag descriptor cache which can have multiple vendor
241 * providers.
242 * Intended to be used by the native code of CameraMetadataNative to correctly
243 * interpret camera metadata with vendor tags.
244 */
245 VendorTagDescriptorCache getCameraVendorTagCache();
246
247 /**
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800248 * Read the legacy camera1 parameters into a String
249 */
Austin Borger1c1bee02023-06-01 16:51:35 -0700250 @utf8InCpp String getLegacyParameters(int cameraId);
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800251
252 /**
253 * apiVersion constants for supportsCameraApi
254 */
255 const int API_VERSION_1 = 1;
256 const int API_VERSION_2 = 2;
257
Shuzhen Wangf9d2c022018-08-21 12:07:35 -0700258 // Determines if a particular API version is supported directly for a cameraId.
Austin Borger1c1bee02023-06-01 16:51:35 -0700259 boolean supportsCameraApi(@utf8InCpp String cameraId, int apiVersion);
Shuzhen Wangf9d2c022018-08-21 12:07:35 -0700260 // Determines if a cameraId is a hidden physical camera of a logical multi-camera.
Austin Borger1c1bee02023-06-01 16:51:35 -0700261 boolean isHiddenPhysicalCamera(@utf8InCpp String cameraId);
Cliff Wud8cae102021-03-11 01:37:42 +0800262 // Inject the external camera to replace the internal camera session.
Austin Borger1c1bee02023-06-01 16:51:35 -0700263 ICameraInjectionSession injectCamera(@utf8InCpp String packageName, @utf8InCpp String internalCamId,
264 @utf8InCpp String externalCamId, in ICameraInjectionCallback CameraInjectionCallback);
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800265
Biswarup Pal37a75182024-01-16 15:53:35 +0000266 /**
267 * Set the torch mode for a camera device.
268 *
269 * @param cameraId The ID of the camera to set torch mode for.
270 * @param deviceId The device id of the context associated with the caller.
271 * @param devicePolicy The camera policy of the device of the associated context (default
272 * policy for default device context). Only virtual cameras would be exposed
273 * only for custom policy and only real cameras would be exposed for default
274 * policy.
275 */
276 void setTorchMode(@utf8InCpp String cameraId, boolean enabled, IBinder clientBinder,
277 int deviceId, int devicePolicy);
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800278
Biswarup Pal37a75182024-01-16 15:53:35 +0000279 /**
280 * Change the brightness level of the flash unit associated with cameraId to strengthLevel.
281 * If the torch is in OFF state and strengthLevel > 0 then the torch will also be turned ON.
282 *
283 * @param cameraId The ID of the camera.
284 * @param strengthLevel The torch strength level to set for the camera.
285 * @param deviceId The device id of the context associated with the caller.
286 * @param devicePolicy The camera policy of the device of the associated context (default
287 * policy for default device context). Only virtual cameras would be exposed
288 * only for custom policy and only real cameras would be exposed for default
289 * policy.
290 */
291 void turnOnTorchWithStrengthLevel(@utf8InCpp String cameraId, int strengthLevel,
292 IBinder clientBinder, int deviceId, int devicePolicy);
Rucha Katakwar38284522021-11-10 11:25:21 -0800293
Biswarup Pal37a75182024-01-16 15:53:35 +0000294 /**
295 * Get the brightness level of the flash unit associated with cameraId.
296 *
297 * @param cameraId The ID of the camera.
298 * @param deviceId The device id of the context associated with the caller.
299 * @param devicePolicy The camera policy of the device of the associated context (default
300 * policy for default device context). Only virtual cameras would be exposed
301 * only for custom policy and only real cameras would be exposed for default
302 * policy.
303 * @return Torch strength level for the camera.
304 */
305 int getTorchStrengthLevel(@utf8InCpp String cameraId, int deviceId, int devicePolicy);
Rucha Katakwar38284522021-11-10 11:25:21 -0800306
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800307 /**
308 * Notify the camera service of a system event. Should only be called from system_server.
309 *
310 * Callers require the android.permission.CAMERA_SEND_SYSTEM_EVENTS permission.
311 */
312 const int EVENT_NONE = 0;
Eino-Ville Talvala63f36112018-12-06 14:57:03 -0800313 const int EVENT_USER_SWITCHED = 1; // The argument is the set of new foreground user IDs.
Valentin Iftime29e2e152021-08-13 15:17:33 +0200314 const int EVENT_USB_DEVICE_ATTACHED = 2; // The argument is the deviceId and vendorId
315 const int EVENT_USB_DEVICE_DETACHED = 3; // The argument is the deviceId and vendorId
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800316 oneway void notifySystemEvent(int eventId, in int[] args);
Eino-Ville Talvala63f36112018-12-06 14:57:03 -0800317
318 /**
Emilian Peev8b64f282021-03-25 16:49:57 -0700319 * Notify the camera service of a display configuration change.
320 *
321 * Callers require the android.permission.CAMERA_SEND_SYSTEM_EVENTS permission.
322 */
323 oneway void notifyDisplayConfigurationChange();
324
325 /**
Eino-Ville Talvala63f36112018-12-06 14:57:03 -0800326 * Notify the camera service of a device physical status change. May only be called from
327 * a privileged process.
328 *
329 * newState is a bitfield consisting of DEVICE_STATE_* values combined together. Valid state
330 * combinations are device-specific. At device startup, the camera service will assume the device
331 * state is NORMAL until otherwise notified.
332 *
333 * Callers require the android.permission.CAMERA_SEND_SYSTEM_EVENTS permission.
334 */
335 oneway void notifyDeviceStateChange(long newState);
336
Avichal Rakesh6e57a2b2023-05-01 17:53:37 -0700337 /**
338 * Report Extension specific metrics to camera service for logging. This should only be called
339 * by CameraExtensionSession to log extension metrics. All calls after the first must set
340 * CameraExtensionSessionStats.key to the value returned by this function.
341 *
342 * Each subsequent call fully overwrites the existing CameraExtensionSessionStats for the
343 * current session, so the caller is responsible for keeping the stats complete.
344 *
345 * Due to cameraservice and cameraservice_proxy architecture, there is no guarantee that
346 * {@code stats} will be logged immediately (or at all). CameraService will log whatever
347 * extension stats it has at the time of camera session closing which may be before the app
348 * process receives a session/device closed callback; so CameraExtensionSession
349 * should send metrics to the cameraservice preriodically, and cameraservice must handle calls
350 * to this function from sessions that have not been logged yet and from sessions that have
351 * already been closed.
352 *
353 * @return the key that must be used to report updates to previously reported stats.
354 */
Austin Borger1c1bee02023-06-01 16:51:35 -0700355 @utf8InCpp String reportExtensionSessionStats(in CameraExtensionSessionStats stats);
Avichal Rakesh6e57a2b2023-05-01 17:53:37 -0700356
Eino-Ville Talvala63f36112018-12-06 14:57:03 -0800357 // Bitfield constants for notifyDeviceStateChange
358 // All bits >= 32 are for custom vendor states
359 // Written as ints since AIDL does not support long constants.
360 const int DEVICE_STATE_NORMAL = 0;
361 const int DEVICE_STATE_BACK_COVERED = 1;
362 const int DEVICE_STATE_FRONT_COVERED = 2;
363 const int DEVICE_STATE_FOLDED = 4;
364 const int DEVICE_STATE_LAST_FRAMEWORK_BIT = 0x80000000; // 1 << 31;
365
Biswarup Pal37a75182024-01-16 15:53:35 +0000366 /**
367 * Create a CaptureRequest metadata based on template id
368 *
369 * @param cameraId The camera id to create the CaptureRequest for.
370 * @param templateId The template id create the CaptureRequest for.
371 * @param deviceId the device id of the context associated with the caller.
372 * @param devicePolicy The camera policy of the device of the associated context (default
373 * policy for default device context). Only virtual cameras would be exposed
374 * only for custom policy and only real cameras would be exposed for default
375 * policy.
376 * @return Metadata representing the CaptureRequest.
377 */
378 CameraMetadataNative createDefaultRequest(@utf8InCpp String cameraId, int templateId,
379 int deviceId, int devicePolicy);
Shuzhen Wang045be6c2023-10-12 10:01:10 -0700380
381 /**
Avichal Rakesh3c522e22024-02-07 16:40:46 -0800382 * Check whether a particular session configuration with optional session parameters
383 * has camera device support.
384 *
385 * @param cameraId The camera id to query session configuration for
Avichal Rakeshcaf179b2024-04-04 18:42:46 -0700386 * @param targetSdkVersion the target sdk level of the application calling this function.
Avichal Rakesh3c522e22024-02-07 16:40:46 -0800387 * @param sessionConfiguration Specific session configuration to be verified.
Biswarup Pal37a75182024-01-16 15:53:35 +0000388 * @param deviceId The device id of the context associated with the caller.
389 * @param devicePolicy The camera policy of the device of the associated context (default
390 * policy for default device context). Only virtual cameras would be exposed
391 * only for custom policy and only real cameras would be exposed for default
392 * policy.
Avichal Rakesh3c522e22024-02-07 16:40:46 -0800393 * @return true - in case the stream combination is supported.
394 * false - in case there is no device support.
395 */
Shuzhen Wang045be6c2023-10-12 10:01:10 -0700396 boolean isSessionConfigurationWithParametersSupported(@utf8InCpp String cameraId,
Avichal Rakeshcaf179b2024-04-04 18:42:46 -0700397 int targetSdkVersion, in SessionConfiguration sessionConfiguration,
398 int deviceId, int devicePolicy);
Avichal Rakesh3c522e22024-02-07 16:40:46 -0800399
400 /**
401 * Get the camera characteristics for a particular session configuration for
402 * the given camera device.
403 *
404 * @param cameraId ID of the device for which the session characteristics must be fetched.
Avichal Rakeshcaf179b2024-04-04 18:42:46 -0700405 * @param targetSdkVersion the target sdk level of the application calling this function.
406 * @param overrideToPortrait Whether to override the sensor orientation information to
407 * correspond to portrait.
Biswarup Pal37a75182024-01-16 15:53:35 +0000408 * @param sessionConfiguration Session configuration for which the characteristics
Avichal Rakeshcaf179b2024-04-04 18:42:46 -0700409 * must be fetched.
Biswarup Pal37a75182024-01-16 15:53:35 +0000410 * @param deviceId The device id of the context associated with the caller.
411 * @param devicePolicy The camera policy of the device of the associated context (default
412 * policy for default device context). Only virtual cameras would be exposed
413 * only for custom policy and only real cameras would be exposed for default
414 * policy.
415 * @return Characteristics associated with the given session.
Avichal Rakesh3c522e22024-02-07 16:40:46 -0800416 */
417 CameraMetadataNative getSessionCharacteristics(@utf8InCpp String cameraId,
Biswarup Pal37a75182024-01-16 15:53:35 +0000418 int targetSdkVersion,
419 boolean overrideToPortrait,
420 in SessionConfiguration sessionConfiguration,
421 int deviceId,
422 int devicePolicy);
Eino-Ville Talvalad56db1d2015-12-17 16:50:35 -0800423}