Starting March 27, 2025, we recommend using android-latest-release
instead of aosp-main
to build and contribute to AOSP. For more information, see Changes to AOSP.
Motion tracking
Stay organized with collections
Save and categorize content based on your preferences.
In Android 9, camera devices can advertise
motion tracking capability.
Cameras that support this feature don't produce motion tracking data itself,
but instead are used by ARCore or an image-stabilization algorithm along with
other sensors for scene analysis. To support this feature, devices must support
CONTROL_CAPTURE_INTENT_MOTION_TRACKING
.
If this intent is part of the capture request, the camera must limit the
exposure time to a maximum of 20 milliseconds to reduce motion blur.
Examples and source
A reference motion tracking implementation on the HAL side is available as part
of the
Camera HAL.
Implementation
To enable motion tracking on a camera device, make sure:
Validation
Camera devices supporting the motion tracking feature must pass the
camera CTS tests.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-06-18 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-18 UTC."],[],[],null,["# Motion tracking\n\nIn Android 9, camera devices can advertise\n[motion tracking capability](https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING).\nCameras that support this feature don't produce motion tracking data itself,\nbut instead are used by ARCore or an image-stabilization algorithm along with\nother sensors for scene analysis. To support this feature, devices must support\n[`CONTROL_CAPTURE_INTENT_MOTION_TRACKING`](https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#CONTROL_CAPTURE_INTENT_MOTION_TRACKING).\nIf this intent is part of the capture request, the camera must limit the\nexposure time to a maximum of 20 milliseconds to reduce motion blur.\n\nExamples and source\n-------------------\n\nA reference motion tracking implementation on the HAL side is available as part\nof the\n[Camera HAL](https://android.googlesource.com/platform/hardware/qcom/camera/+/android16-release/msm8998/QCamera2/HAL3/QCamera3HWI.cpp).\n\nImplementation\n--------------\n\nTo enable motion tracking on a camera device, make sure:\n\n- The [`ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING`](https://android.googlesource.com/platform/hardware/interfaces/+/android16-release/camera/metadata/3.3/types.hal#230) capability is enabled.\n- The [`ANDROID_CONTROL_CAPTURE_INTENT_MOTION_TRACKING`](https://android.googlesource.com/platform/hardware/interfaces/+/android16-release/camera/metadata/3.3/types.hal#206) intent is supported and when included in a capture request limits the camera exposure time to a maximum of 20 milliseconds.\n- Lens calibration data from the following list is accurately reported in the\n static information and dynamic metadata fields:\n\n - [`ANDROID_LENS_POSE_ROTATION`](https://android.googlesource.com/platform/hardware/interfaces/+/android16-release/camera/metadata/3.2/types.hal#747)\n - [`ANDROID_LENS_POSE_TRANSLATION`](https://android.googlesource.com/platform/hardware/interfaces/+/android16-release/camera/metadata/3.2/types.hal#753)\n - [`ANDROID_LENS_INTRINSIC_CALIBRATION`](https://android.googlesource.com/platform/hardware/interfaces/+/android16-release/camera/metadata/3.2/types.hal#773)\n - [`ANDROID_LENS_RADIAL_DISTORTION`](https://android.googlesource.com/platform/hardware/interfaces/+/android16-release/camera/metadata/3.2/types.hal#780)\n - [`ANDROID_LENS_POSE_REFERENCE`](https://android.googlesource.com/platform/hardware/interfaces/+/android16-release/camera/metadata/3.3/types.hal#78)\n\nValidation\n----------\n\nCamera devices supporting the motion tracking feature must pass the\n[camera CTS tests](/docs/compatibility/cts/camera-hal#cts_tests)."]]