[null,null,["最后更新时间 (UTC):2025-07-27。"],[],[],null,["# Develop experiences for kids on Wear OS\n\nReview the following guidelines to optimize your Wear OS app's experience for\nkids. Also, confirm that your app or game\n[satisfies requirements for kid-friendly experiences](/training/wearables/packaging#kids).\n\nReview Wear OS principles\n-------------------------\n\nReview the following resources for creating new Wear OS apps:\n\n- [Get started with Wear OS](/training/wearables)\n- [Principles of Wear OS development](/training/wearables/principles)\n- [UI design](/design/ui/wear)\n- [Create and run an app on Wear OS](/training/wearables/get-started/creating)\n- [App quality requirements](/docs/quality-guidelines/wear-app-quality#requirements)\n\nDon't port the phone app\n------------------------\n\nDon't port your mobile app onto Wear OS. Wear OS devices have much smaller\nbatteries and components than mobile devices, which makes directly-ported mobile\ngames very difficult to play.\n\nLearn more about how to [design experiences for kids on Wear OS](/design/ui/wear/guides/foundations/wear-os-for-kids).\n\nChoose a development environment\n--------------------------------\n\nTo develop kid-friendly experiences, you can use [Compose for Wear OS](/training/wearables/compose), our\nrecommended approach for building UIs on Wear OS, as well as\n[Unity for Android](https://unity.com/solutions/mobile/android-game-development).\n\nIf you're more familiar with [Unity's](/games/engines/unity/start-in-unity) workflows and capabilities, or if your\ngame is more complex and has 3D graphics and physics, we recommend using Unity\nto develop your game. It also comes with a variety of performance optimization\nfeatures. Some Wear OS quality requirements may require custom implementations\nin Unity, such as support for [rotary input](/training/wearables/compose/rotary-input).\n\nFor games with only a few simple and short animations, the\n[Compose Animation API](/develop/ui/compose/animation/introduction) should be sufficient and is better supported within\nthe Android environment.\n\nMinimize impact on device battery\n---------------------------------\n\nMinimize events that affect battery life over the course of one session. Kids\nuse watches that provide important safety features for their parents or\nguardians, which depend on the device having enough battery life.\n\nThe following list includes some best practices for reducing battery impact.\nYou can also learn more about how to [conserve power and battery](/training/wearables/apps/power).\n\n- Design for offline use cases so that kids can play without incurring network-related battery costs.\n- Minimize tasks that require an internet or GPS connection.\n- Limit active gameplay time per day.\n- Use power efficient APIs for [all day activity tracking](/health-and-fitness/guides/health-services/monitor-background) as well as tracking [exercises](/health-and-fitness/guides/health-services/active-data).\n- Reduce manual creation of wakelocks and use [`WorkManager`](/develop/background-work/background-tasks/persistent/getting-started).\n\nThe following list includes elements that you shouldn't include in your\nexperience:\n\n- Don't use [direct sensor tracking](/training/wearables/apps/power#sensors) as this significantly reduces the battery life.\n- Don't include long-running animations.\n- Don't encourage the user to keep the screen on longer than necessary.\n\nPrepare for standalone experiences\n----------------------------------\n\n**Important:** Kids apps must [identify themselves as standalone](/training/wearables/apps/standalone-apps) to be made\navailable on watches in kids mode.\n\nWhen developing [standalone experiences](/training/wearables/apps/standalone-apps), consider the following:\n\n- Design for offline use cases so that kids can always play.\n- Test how your app behaves on an emulator that doesn't have an active connection to a mobile device.\n\nUse Watch Face Format to create watch faces\n-------------------------------------------\n\nA watch face that's designed for kids must be created using Watch Face Format.\nBe mindful of how color saturation affects battery performance.\n\nLearn more about how you can either\n[design a watch face using Watch Face Studio](https://developer.samsung.com/watch-face-studio/overview.html) or\n[manually configure the Watch Face Format](/training/wearables/wff), and check out our\n[watch face validation tools](https://github.com/google/watchface).\n\nHide open-on-phone actions\n--------------------------\n\nStarting in Wear OS 5, the [`RemoteActivityHelper`](/reference/androidx/wear/remote/interactions/RemoteActivityHelper) API includes support for\ndetecting whether a Wear OS device is in standalone mode. If a device is in\nstandalone mode, hide any **Open on phone** interactions that your app or game\nmight otherwise show.\n\nFor use cases where an app needs to be able to open a public URL on the phone\nto display Terms of Service, legal notices, a privacy policy, or something\nsimilar, display a short-link or QR Code using the [`Dialog`](/reference/kotlin/androidx/wear/compose/material/dialog/package-summary) component. If\nyou provide a QR Code, parents and guardians can scan it using a mobile device.\n| **Note:** If your app tries to send a remote intent to a device that's in standalone mode, the operation fails with the `RESULT_FAILED` status.\n\nCheck standalone mode status before sending cross-device authorization requests\n-------------------------------------------------------------------------------\n\nIf your app makes OAuth authorization requests to other devices, first check\nwhether the device is in standalone mode. To do so, call\n[`getAvailabilityStatus()`](/reference/androidx/wear/phone/interactions/authentication/RemoteAuthClient#getAvailabilityStatus()) from a `RemoteAuthClient` object:\n\n- If the return value is `STATUS_UNAVAILABLE`, the device is in standalone mode, and you should wait to send any OAuth authorization requests to mobile devices.\n- If the return value is `STATUS_TEMPORARILY_UNAVAILABLE`, wait for the value to change to `STATUS_AVAILABLE` before sending authorization requests."]]