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.
Rotary controller
Stay organized with collections
Save and categorize content based on your preferences.
A rotary controller is a knob and surrounding buttons in the center console of
an automobile used to control the head unit. A rotary controller must support these functions:
- Nudge in four directions (up, down, left, and right)
- Rotate clockwise and counterclockwise
- Center button
- Back button
A rotary controller might support diagonal nudges. Rotation must be limitless with
detents (clicks). There can either be a button in the center or the rotary knob itself
can act as a button. There are typically additional buttons surrounding the rotary knob,
for example, Home, Media, Phone, and navigation (map).
A rotary controller works like this:
- Nudging is used for coarse navigation in the user interface. The screen is
partitioned into several rectangular regions, referred to as
FocusAreas
.
Nudging navigates between these FocusAreas
.
- Rotation is used for fine navigation. Rotation navigates through the
focusable views in a
FocusArea
in the same order as the Tab key.
- Center button takes action on the focused view, for example to press a button.
- Back button typically functions as usual in Android, an exception being
direct manipulation, described below.
Nudge history ensures that nudging right and then left takes you back where you were.
This can be configured by the OEM.
When configured by the OEM, attempting to nudge off the edge of the screen triggers a
system-wide action, for example Back.
If the most recent interaction took place through touch rather than the rotary controller,
any nudge, rotate, or press of the Center button starts rotary mode by focusing a view, but
is typically ignored. Subsequent actions function as described above, moving focus or
taking action.
If a SeekBar
is focused when the Center button is pressed,
direct manipulation (DM) mode starts. In this mode, rotation manipulates the
SeekBar
rather than navigating. The Back button is used to exit DM mode.
Other views that support DM mode can use nudging as well as rotation to manipulate the view.
For example, a map view can use rotation to zoom and nudging to pan (scroll) the map.
To learn more, see:
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-12 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-12 UTC."],[],[],null,["# Rotary controller\n\nA *rotary controller* is a knob and surrounding buttons in the center console of\nan automobile used to control the head unit. A rotary controller must support these functions:\n\n- Nudge in four directions (up, down, left, and right)\n- Rotate clockwise and counterclockwise\n- Center button\n- Back button\n\nA rotary controller might support diagonal nudges. Rotation must be limitless with\ndetents (clicks). There can either be a button in the center or the rotary knob itself\ncan act as a button. There are typically additional buttons surrounding the rotary knob,\nfor example, Home, Media, Phone, and navigation (map).\n\nA rotary controller works like this:\n\n- Nudging is used for *coarse* navigation in the user interface. The screen is partitioned into several rectangular regions, referred to as `FocusAreas`. Nudging navigates between these `FocusAreas`.\n- Rotation is used for *fine* navigation. Rotation navigates through the focusable views in a `FocusArea` in the same order as the Tab key.\n- Center button takes action on the focused view, for example to press a button.\n- Back button typically functions as usual in Android, an exception being [direct manipulation](#dm), described below.\n\nNudge history ensures that nudging right and then left takes you back where you were.\nThis can be configured by the OEM.\n\nWhen configured by the OEM, attempting to nudge off the edge of the screen triggers a\nsystem-wide action, for example Back.\n\nIf the most recent interaction took place through touch rather than the rotary controller,\nany nudge, rotate, or press of the Center button starts rotary mode by focusing a view, but\nis typically ignored. Subsequent actions function as described above, moving focus or\ntaking action.\n\nIf a `SeekBar` is focused when the Center button is pressed,\n*direct manipulation (DM)* mode starts. In this mode, rotation manipulates the\n`SeekBar` rather than navigating. The Back button is used to exit DM mode.\nOther views that support DM mode can use nudging as well as rotation to manipulate the view.\nFor example, a map view can use rotation to zoom and nudging to pan (scroll) the map.\n\nTo learn more, see:\n\n- [Develop apps](/docs/automotive/hmi/rotary_controller/app_developers)\n- [Develop apps\n without the Car UI library](/docs/automotive/hmi/rotary_controller/app_developers_no_carui)\n- [Integration guide for OEMs](/docs/automotive/hmi/rotary_controller/oem_integration)"]]