The following table shows all options available to set and get by camera.setOptions
and camera.getOptions
. An option cannot be changed when its corresponding support is empty or contains only one option.
captureMode
image.
captureModeSupport
["image"]
, and minimum requirement for API level 2 is ["image", "interval"]
, where "interval"
represents the mode of capturing a series of images spaced at a certain interval, please see also captureInterval
and captureIntervalSupport
. Two additional modes ("video" and "walkaround")
are supported by API level 2, so the complete supported set by API level 2 is ["image", "interval", "video", "walkaround"]
, where "video"
represents the video capture mode and "walkaround"
represents the mode of capturing two images in sequence, the first with the users standing anywhere relative to the camera and the second with the users standing on the opposite side (relative to the first standing point) of the camera. This allows the camera to remove the users from the final image by combining the two images. When "walkaround"
is supported by the camera and set to be the current capture mode, the client should expect to send two takePicture commands to the camera, where the response of the first command (when it finishes) indicates the camera is ready to take the second image while the second command should return the final image when it finishes. To add more capture modes not supported yet, please prefix vendor-specific modes with an underscore ( _ ).
This option was modified in API level 2.
captureStatus
"idle"
. This is useful to determine the camera's status when it is first connected to an app. If the camera is in the middle of shooting a video, it may need to be stopped before commanded to do other things, e.g. another video shooting. This option was added in API level 2.1.
captureStatusSupport
["idle", "shooting"]
if video shooting is supported. Other statues can be provided too, e.g. "downloading"
. This option was added in API level 2.1.
exposureProgram
exposureProgramSupport
[0, 1, 2, 3, 4]
. Each integer represents a different exposure program: - 0 = Not defined
- 1 = Manual
- 2 = Normal program
- 3 = Aperture priority
- 4 = Shutter priority
ExposureProgram
.
iso
isoSupport
API level 1:List of ISO settings currently available; for example, [100, 200, 400, 800,1600]
or []
when it is in auto
mode.
API level 2:List of ISO settings currently available; for example, [0, 100, 200, 400, 800, 1600]
, where 0
represents auto
mode.
This option was modified in API level 2.
shutterSpeed
shutterSpeedSupport
API level 1:List of shutter speeds currently available; for example, [0.067, 0.033, 0.017,0.008]
or []
when it is in auto
mode.
API level 2:List of shutter speeds currently available; for example, [0, 0.067, 0.033, 0.017, 0.008]
, where 0
represents auto
mode.
This option was modified in API level 2.
aperture
apertureSupport
API level 1:List of aperture settings currently available, expressed in f/number
; for
example, [1.4, 2, 2.8, 4, 5.6, 8, 11]
or []
when it is auto
mode.
API level 2:List of aperture settings currently available, expressed in f/number
; for example, [0, 1.4, 2, 2.8, 4, 5.6, 8, 11]
, where 0
represents auto
mode.
whiteBalance
daylight
. Default to auto
.whiteBalanceSupport
[ "auto", "incandescent", "fluorescent", "daylight", "cloudy-daylight", "shade", "twilight"]
. Values for each: -
incandescent
, around 3200K -
fluorescent
, around 4000K -
datalight
, around 5200K -
cloudy-daylight
, around 6000K -
shade
, around 7000K -
twilight
, around 12000K
_vendor-setting
exposureCompensation
exposureCompensationSupport
[-1, -0.67, -0.33, 0, 0.33, 0.67, 1]
fileFormat
Current file type and resolution. The format should reflect the current value of captureMode
. For example, if captureMode
is image
, an appropriate response could be:
{ "type" : "jpeg" , "width" : 2000 , "height" : 1000 }
captureMode
is video
, an appropriate response could be: { "type" : "mp4" , "width" : 1920 , "height" : 1080 , "framerate" : 30 }
This option was modified in API level 2.
fileFormatSupport
List of the file formats currently available; for example:
[ { "type" : "jpeg" , "width" : 2000 , "height" : 1000 }, { "type" : "jpeg" , "width" : 200 , "height" : 100 }, { "type" : "mp4" , "width" : 1920 , "height" : 1080 , "framerate" : 24 }, { "type" : "mp4" , "width" : 1280 , "height" : 720 , "framerate" : 30 }, ... ]
This option was modified in API level 2.
exposureDelay
takePicture
command and when the exposure is started, in seconds.exposureDelaySupport
[0, 1, 2, 5, 10, 30, 60]
sleepDelay
sleepDelaySupport
[30, 60, 120, 300, 600, 1800, 65535]
, where 65535
disables
sleep mode (the camera doesn't sleep until powered off) and must be supported.offDelay
offDelaySupport
[1800, 3600, 7200, 65535]
, where 65535
disables
power off mode (the camera doesn’t power off until the battery is depleted or powered off manually) and must be supported.totalSpace
remainingSpace
remainingPictures
gpsInfo
Current GPS information. Set using setOptions
using phone’s GPS:
{ "lat": 23.532, "lng": -132.35 }
lat
and lng
properties are decimal degrees, with lat
in the range, [-90, 90]
, and lng
in the range, [-180, 180]
. When provided by a phone, please note that each GPS location is valid only
until the next update from the phone. The phone must determine when to update
the GPS location; for example, right before each takePicture
command. 65535
notifies the camera that the current GPS location is invalid and the camera
should ignore it and use its own GPS if it exists; for example, setOptions({"gpsInfo": {"lat": 65535, "lng": 65535}})
means the GPS location is
invalid.dateTimeZone
setOptions
using phone’s date, time, and time zone. The format is, YYYY:MM:DD HH:MM:SS+(-)HH:MM
. Time is in 24-hour format, date and time are separated by a blank space,
andtime zone is an offset from UTC time; for example, 2014:05:18 01:04:29+8:00
is China Time Zone (UTC+8:00)hdr
API level 1:Boolean
API level 2:String
API level 1:Enable/disable HDR capture mode. Value is true
to enable HDR, or false
to disable it. Default value is false
. Setting can be true
only when hdrSupport
is also true
.
API level 2:Current HDR mode of String type.
This option was modified in API level 2.
hdrSupport
API level 1:Boolean
API level 2:String Array
API level 1:A value of true
signifies that the camera supports HDR. A false
setting identifies a camera without HDR.
API level 2:If you don’t support HDR mode, it is [“off”]
; if you supports one HDR mode, it is [“off”, “hdr”]
, if multiple HDR modes (different algorithms based) are supported, then it is [“off”, “hdr”, “hdr1”, “hdr2”, ...]
This option was modified in API level 2.
exposureBracket
hdrSupport == true
(API level 1)or hdrSupport
contains at least one HDR mode (API level 2). If the camera uses manual exposure bracketing, the object contains two entries: -
shots
, an integer containing the number of shots to be taken. -
increment
, a number containing an EV increment between shots.
{ "shots": 3, "increment": 1.33 }
{ "autoMode": true }
API level 1:Default to empty {}
when hdrSupport == false
. Manufacturers decide default values (for example, auto exposure bracketing), when hdr
is true
.
API level 2:Default to empty {} when hdrSupport
contains only "off"
. Otherwise, manufacturers decide default values (for example, auto exposure bracketing).
This option was modified in API level 2.
exposureBracketSupport
Exposure bracket settings currently available; for example:
{ "autoMode": true, "shotsSupport": [1, 3, 5, 7], "incrementSupport": [0.33, 0.67, 1, 1.33, 1.67, 2] }
API level 1:Default to empty {}
if hdrSupport == false
. When hdrSupport == true
, but auto exposure bracketing is not supported, then autoMode
will be false
.
API level 2:Default to empty {}
if hdrSupport
contains only "off"
. When hdrSupport
contains any HDR mode, but auto exposure bracketing is not supported, then autoMode
will be false
.
This option was modified in API level 2.
gyro
true
to enable the camera’s gyroscope module, or false
to disable this feature. Default to true
if the camera supports it, otherwise false
. This setting can be true
only when gyroSupport == true
.gyroSupport
true
, otherwise, false
.gps
true
to enable, or false
to disable. Default value is true
if the camera supports it, otherwise false
. Setting is true
only when gpsSupport == true
.gpsSupport
true
if the camera has its own GPS module, otherwise false
.imageStabilization
off
.imageStabilizationSupport
["off", "on"]
.If the camera doesn’t support image stabilization, return ["off"]
, otherwise return ["off", "on"]
. Prefix vendor-specific strings with an underscore ( _ ); for example, [ "off", "_horizontal_stabilization", "_vibration_correction" ]
.wifiPassword
wifiPassword
.previewFormat
Current live preview resolution; for example:
{ "width": 640, "height": 320, "framerate": 24 }
This option was added in API level 2.
previewFormatSupport
Currently supported live preview formats; for example:
[ { "width": 640, "height": 320, "framerate": 24 }, ... { "width": 1280, "height": 720, "framerate": 24 } ]
This option was added in API level 2.
captureInterval
seconds
. This option was added in API level 2.
captureIntervalSupport
Minimum and maximum intervals allowed between capturing two consecutive images, in seconds; for example:
{ "minInterval": 10, "maxInterval": 60 }
fileFormat
. This option was added in API level 2.
captureNumber
0
, which means the capture needs to be terminated explicitly by stopCapture
command; otherwise, the capture stops automatically after it captures images of the specified number. The capture can also be interrupted when the camera is out of battery or when it is turned off intentionally. This option was added in API level 2.
captureNumberSupport
Minimum and maximum number of images that can be captured during an interval capture; for example:
{ "minNumber": 2, "maxNumber": 50 }
This option was added in API level 2.
remainingVideoSeconds
seconds
for remaining video based on current capture setting. This option was added in API level 2.
pollingDelay
This option was added in API level 2.
delayProcessing
True
when processing (e.g. stitching) has a lower priority than capturing, or in other words, another capture is allowed before the processing of the previous captured image is finished. This is highly recommended, especially for cameras that require long processing time. This option was added in API level 2.
delayProcessingSupport
[true]
means processing (e.g. stitching) has a lower priority than capturing, and is always delayed by default.
[false]
means processing happens right after capturing.
[true, false]
means there is a choice between these two modes.
This option was added in API level 2.
clientVersion
The API level the client decides to use. Default to 1 if the
camera supports both API level 1 and 2 so that clients written for
API level 1 still works with the camera without any change; default
to 2 if the camera only supports API level 2, which is not
recommended before clients migrate to API level 2. If the camera
only supports API level 2, the request trying to set it to 1 should
fail. If clientVersion
is set to 2 successfullly and a
deprecated command from API level 1 is requested, the request
should fail with error code unknownCommand
.
This option was added in API level 2.
photoStitchingSupport
List of stitching options for photos. Return [ondevice]
if photos are always stitched on the camera, [none]
if the camera cannot stitch photos, and [none,ondevice]
if stitching is user configurable.
Prefix vendor-specific setting names with an underscore, e.g. _vendor-setting
.
This option was added in API level 2.1.
photoStitching
Current stitching option for photos, e.g. ondevice
. Default to ondevice
if it is
supported.
This option was added in API level 2.1.
videoStitchingSupport
List of stitching options for videos. Return [ondevice]
if videos are always stitched on the camera, [none]
if the camera cannot stitch videos, and [none,ondevice]
if stitching is user configurable.
Prefix vendor-specific setting names with an underscore, e.g. _vendor-setting
.
This option was added in API level 2.1.
videoStitching
Current stitching option for videos, e.g. ondevice
. Default to ondevice
if it is
supported.
This option was added in API level 2.1.
videoGPSSupport
List of GPS options during video capture. Return [continuous]
if the camera can continuously capture GPS
during video capture and embed the locations in the video. Return [none]
if it cannot and [none,continuous]
if video GPS support is user configurable. Prefix vendor-specific
setting names with an underscore, e.g. _vendor-setting
.
This option was added in API level 2.1.
videoGPS
Current option for GPS support during video capture, e.g. continuous
. Default to continuous
if it is
supported.
This option was added in API level 2.1.
_vendorSpecific