Unless otherwise specified, the changes affect all apps that run on Wear OS 6
or higher, regardless of target SDK version.
As a reminder, watches that launch with Wear OS 6 only support watch faces that
use the Watch Face Format. For this reason, we recommend that you migrate
to using the Watch Face Format.
More consistent always-on behavior
Wear OS 6 consolidates existing solutions to offer a consistent always-on
display experience across devices. As part of this change, the previous top
activity remains visible and in the "resumed" state when the device enters
system ambient mode.
The current song and media controls remain visible even when the
user isn't interacting with the Wear OS device.
Default system font for tiles
Wear OS 6 introduces more consistency for tile typography, which helps users
navigate through the tile carousel. On a given device, all tiles use the same
font. On some devices, this consistent font is a
variable font.
All tiles on a given device use the same font.
More granular health permissions
Starting in Android 16—and, by extension, Wear OS 6—the platform is migrating to
the more granular health permissions that Health Connect uses. This affects the
following permissions:
Wear OS 5.1 permission (android.permission)
Wear OS 6 permission (android.permission.health)
BODY_SENSORS
READ_HEART_RATE READ_OXYGEN_SATURATION (sensor available on supported devices) READ_SKIN_TEMPERATURE (sensor available on supported devices)
BODY_SENSORS_BACKGROUND
READ_HEALTH_DATA_IN_BACKGROUND
To learn how to update your app for handling these permissions when it targets
API level 36 or higher, follow the migration steps shown in the
Health Services for Wear OS guide.
Note: To maintain compatibility for apps that target Wear OS 5.1
(API level 35) and lower, the system offers the following support:
If the user installs your app on a device that runs Wear OS 6 or higher,
the system automatically requests the READ_HEART_RATE
permission on your app's behalf.
If the user previously granted the BODY_SENSORS and
BODY_SENSORS_BACKGROUND permissions to your app, and if the
user then updates their device to Wear OS 6 or higher,
your app maintains the granted permissions.
Tile interaction events are batched
Starting in Wear OS 6, events related to users swiping onto and away from your
tile—onTileEnterEvent and onTileLeaveEvent, respectively—are batched.
If your app targets Wear OS 6 or higher, call
onRecentInteractionEventsAsync() to monitor these events. Don't rely on
real time delivery of these events to update your tiles.
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-07-10 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-07-10 UTC."],[],[],null,["# Test how your app handles behavior changes\n\nWear OS 6 is based on Android 16 (API level 36). When you prepare your Wear OS\napp for use on Wear OS 6, handle the system\n[behavior changes that affect all apps in Android 16](/about/versions/16/behavior-changes-all), as well as the\n[changes for apps that target Android 16](/about/versions/16/behavior-changes-16).\n\nUnless otherwise specified, the changes affect all apps that run on Wear OS 6\nor higher, regardless of target SDK version.\n\nAs a reminder, watches that launch with Wear OS 6 only support watch faces that\nuse the [Watch Face Format](/training/wearables/wff). For this reason, we recommend that you migrate\nto using the Watch Face Format.\n| **Caution:** Before you upload your app to the Play Store, [target Android 16](/training/wearables/versions/6/setup#update-target-sdk) and [configure an emulator](/training/wearables/get-started/creating#configure-emulator) to test your app.\n\nMore consistent always-on behavior\n----------------------------------\n\n\nWear OS 6 consolidates existing solutions to offer a consistent [always-on](/training/wearables/always-on)\ndisplay experience across devices. As part of this change, the previous top\nactivity remains visible and in the \"resumed\" state when the device enters\nsystem ambient mode. \nThe current song and media controls remain visible even when the user isn't interacting with the Wear OS device.\n\n\u003cbr /\u003e\n\nDefault system font for tiles\n-----------------------------\n\nWear OS 6 introduces more consistency for tile typography, which helps users\nnavigate through the tile carousel. On a given device, all tiles use the same\nfont. On some devices, this consistent font is a\n[variable font](https://fonts.google.com/knowledge/introducing_type/introducing_variable_fonts). \nAll tiles on a given device use the same font.\n\nMore granular health permissions\n--------------------------------\n\n| **Note:** The following change affects your app only if you [update your target SDK\n| version to Android 16](/training/wearables/versions/6/setup#update-target-sdk), the version on which Wear OS 6 is based, or higher.\n\nStarting in Android 16---and, by extension, Wear OS 6---the platform is migrating to\nthe more granular health permissions that Health Connect uses. This affects the\nfollowing permissions:\n\n| Wear OS 5.1 permission (`android.permission`) | Wear OS 6 permission (`android.permission.health`) |\n|-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `BODY_SENSORS` | `READ_HEART_RATE` `READ_OXYGEN_SATURATION` (*sensor available on supported devices* ) `READ_SKIN_TEMPERATURE` (*sensor available on supported devices*) |\n| `BODY_SENSORS_BACKGROUND` | `READ_HEALTH_DATA_IN_BACKGROUND` |\n\nTo learn how to update your app for handling these permissions when it targets\nAPI level 36 or higher, follow the [migration steps](/health-and-fitness/guides/health-services/permissions#migrate-support-api-36) shown in the\nHealth Services for Wear OS guide.\n\n\n**Note:** To maintain compatibility for apps that target Wear OS 5.1\n(API level 35) and lower, the system offers the following support:\n\n- If the user installs your app on a device that runs Wear OS 6 or higher, the system automatically requests the `READ_HEART_RATE` permission on your app's behalf.\n- If the user previously granted the `BODY_SENSORS` and `BODY_SENSORS_BACKGROUND` permissions to your app, and if the user then updates their device to Wear OS 6 or higher, your app maintains the granted permissions.\n\n\u003cbr /\u003e\n\nTile interaction events are batched\n-----------------------------------\n\n| **Note:** The following change affects your app only if you [update your target SDK\n| version to Android 16](/training/wearables/versions/6/setup#update-target-sdk), the version on which Wear OS 6 is based, or higher.\n\nStarting in Wear OS 6, events related to users swiping onto and away from your\ntile---`onTileEnterEvent` and `onTileLeaveEvent`, respectively---are batched.\nIf your app targets Wear OS 6 or higher, call\n[`onRecentInteractionEventsAsync()`](/reference/androidx/wear/tiles/TileService#onRecentInteractionEventsAsync(java.util.List%3Candroidx.wear.tiles.EventBuilders.TileInteractionEvent%3E)) to monitor these events. Don't rely on\nreal time delivery of these events to update your tiles."]]