{"id":19236,"date":"2025-12-19T12:16:15","date_gmt":"2025-12-19T03:16:15","guid":{"rendered":"https:\/\/aireviewirush.com\/?p=19236"},"modified":"2025-12-19T12:16:15","modified_gmt":"2025-12-19T03:16:15","slug":"bringing-androidify-to-put-on-os-with-watch-face-push","status":"publish","type":"post","link":"https:\/\/aireviewirush.com\/?p=19236","title":{"rendered":"Bringing Androidify to Put on OS with Watch Face Push"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<meta content=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjNtDIxOiiEPObA6g_6dgbNwjmx8KzrCrU7te07duutzsAJT3LebLW-RhJ2gVjteDMdTHcL960a3ytrdhQg7npCDHpi22KA1jnWEOfj0BD7IjcvXzseNfeTOhZbQb6skbRzXt8-7zL09vcLrefJu5f8xdfe9rDJms-pLgVIqk4qQxa1DPVqiG3kAwtmzHE\/s1600\/Androidify-for-watch-faces-Meta.png\" name=\"twitter:image\"\/><br \/>\n<img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjNtDIxOiiEPObA6g_6dgbNwjmx8KzrCrU7te07duutzsAJT3LebLW-RhJ2gVjteDMdTHcL960a3ytrdhQg7npCDHpi22KA1jnWEOfj0BD7IjcvXzseNfeTOhZbQb6skbRzXt8-7zL09vcLrefJu5f8xdfe9rDJms-pLgVIqk4qQxa1DPVqiG3kAwtmzHE\/s1600\/Androidify-for-watch-faces-Meta.png\" alt=\"\"><\/p>\n<p><em>Posted by Garan Jenkin &#8211; Developer Relations Engineer<\/em><\/p>\n<div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjpjjr7GPd0FzPqYWmu7MGN-OFEeVsMzx40UO7jwZjQ4bB6A6vqBik6DuUI0cgpUr4SWJ0ZFobOVbjFwiZ2zUdR_xkDBwXwDfZxqOzV351mXVxUXoThsuclzaij-haPSIJ-Mg0csk6WoCWeO_VgSvfAmLf6vgbDk-53yt6DZdhC4UnzoSSKJLP3JVKTghc\/s4209\/Androidify%20for%20watch%20faces-Blog.png\" style=\"clear: left; float: left; margin-bottom: 1em; margin-right: 1em;\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" border=\"0\" data-original-height=\"1253\" data-original-width=\"4209\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjpjjr7GPd0FzPqYWmu7MGN-OFEeVsMzx40UO7jwZjQ4bB6A6vqBik6DuUI0cgpUr4SWJ0ZFobOVbjFwiZ2zUdR_xkDBwXwDfZxqOzV351mXVxUXoThsuclzaij-haPSIJ-Mg0csk6WoCWeO_VgSvfAmLf6vgbDk-53yt6DZdhC4UnzoSSKJLP3JVKTghc\/s16000\/Androidify%20for%20watch%20faces-Blog.png\" alt=\"\"><\/a><\/div>\n<p><em><br \/><\/em><\/p>\n<p><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"><\/p>\n<div class=\"youtube-embed\" data-video_id=\"JgsPXZIKInw\"><iframe loading=\"lazy\" title=\"Bringing Androidify to Wear OS\" width=\"696\" height=\"392\" src=\"https:\/\/www.youtube.com\/embed\/JgsPXZIKInw?feature=oembed&#038;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<p><\/span><\/p>\n<p><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"><br \/>A number of months in the past we <\/span><a href=\"https:\/\/android-developers.googleblog.com\/2025\/09\/androidify-ai-gemini-android-jetpack-compose-firebase-camerax.html\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">relaunched Androidify<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> as an app for producing personalised Android bots. Androidify transforms your selfie photograph right into a playful Android bot utilizing <\/span><a href=\"https:\/\/android-developers.googleblog.com\/2025\/05\/androidify-how-androidify-leverages-gemini-firebase-ml-kit.html\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">Gemini and Imagen<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">.<\/span><\/p>\n<p><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">Nevertheless, on condition that Android spans a number of type elements, <\/span><a href=\"https:\/\/android-developers.googleblog.com\/2025\/10\/bringing-androidify-to-xr-with-jetpack.html\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;\">together with our most up-to-date addition, XR<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">, we thought, how might we convey the enjoyable of Androidify to Put on OS?<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt; text-align: center;\"><span face=\"Arial,sans-serif\" style=\"background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"><span style=\"border: none; display: inline-block; height: 100%; max-width: 220px; overflow: hidden;\"><img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEiKQICs9OOBsmkQkMNT7QBj-qQ1rTxz24o0oEBmuLnx6JXZjr2bp9z8L243UmMjCP8uZoMjwYGE1oMGO2fkSki0UDTldg7LrYv69F-mEp8dfLvexBuQWP42FG5FJ3AiZYJjMSHbA39uHgnAdtvRIz4yTLqkyjNfdlUN9j4UUBdNqFa5HAv34SIHJVtURuw\" alt=\"\"><\/span><\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt; text-align: center;\"><span style=\"color: #666666; font-style: italic;\">An Androidify watch face<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">As Androidify bots are highly-personalized, the pure place to showcase them is the watch face. Not solely is it probably the most often seen floor but additionally probably the most private floor, permitting you to signify who you might be.<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt; text-align: center;\"><span face=\"Arial,sans-serif\" style=\"background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"><span style=\"border: none; display: inline-block; height: 100%; max-width: 335px; overflow: hidden;\"><span face=\"Arial,sans-serif\" style=\"background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"><img decoding=\"async\" border=\"0\" data-original-height=\"383\" data-original-width=\"495\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgUFL6iMWpogIFloXAQMCF0a3c9BfNL5gdo3xv-916qFnpQ5Jv1qeFsXEmcBZVBl2iWPLkMFvoeL8mnrpERFeq_D6iGJLIAqTTCqDlGMfp9wF2BaYB7LCAWn_oNwFtvBky5amCB7tPL8xKBHk7Xwwq74eupVaW1dXQqR7B3z0fYVVGRYD5EvQtFtm379i4\/s16000\/demonstration.gif\" alt=\"\"><\/span><br \/><span style=\"color: #666666; font-style: italic;\">Customized Androidify watch face, generated from selfie picture<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #666666;\">Androidify now has the power to generate a watch face dynamically inside the telephone app after which ship it to your watch, the place it&#8217;ll robotically be set as your watch face. All of this occurs inside seconds!<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 16pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-size: 15pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Excessive-level design<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt; text-align: center;\"><span face=\"Roboto,sans-serif\" style=\"background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"><span style=\"border: none; display: inline-block; height: 100%; max-width: 432px; overflow: hidden;\"><img loading=\"lazy\" decoding=\"async\" height=\"274\" src=\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEh0zWUzVp4kZpdgc04fcTRc2cVVEDqIISpBfAj4KFfyhyELAtKqLzJgDXMhJY5w9aNACtB5MgTAkKivjTcMrsONdgavv7qPp6cz5oDc6MQlzY2xOAowJ0NFv6LkcZxomVGIyzTgbCg7i5_AVcblkjzTsJ1WKSS57yAhyBH2OQalt7ZzK-IzUKVzQGvUjK8\" style=\"margin-left: 0px; margin-top: 0px;\" width=\"432\" alt=\"\"><span style=\"color: #666666; font-style: italic;\">Finish-to-end circulate for watch face creation and set up<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #666666;\">With a purpose to obtain the end-to-end expertise, numerous applied sciences must be mixed collectively, as proven on this high-level design diagram.<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">To start with, the person\u2019s avatar is mixed with a pre-existing <\/span><a href=\"https:\/\/developer.android.com\/training\/wearables\/wff\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">Watch Face Format<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> template, which is then packaged into an APK. That is validated &#8211; for causes which might be defined! &#8211; and despatched to the watch.<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">On being acquired by the watch, the brand new <\/span><a href=\"https:\/\/developer.android.com\/training\/wearables\/watch-face-push\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">Watch Face Push API<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> &#8211; a part of Put on OS 6- is used to put in and activate the watch face.<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Let\u2019s discover the small print:<\/span><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_53 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\" role=\"button\"><label for=\"item-69efc1818deb5\" ><span class=\"\"><span style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input aria-label=\"Toggle\" aria-label=\"item-69efc1818deb5\"  type=\"checkbox\" id=\"item-69efc1818deb5\"><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/aireviewirush.com\/?p=19236\/#Creating_the_watch_face_templates\" title=\"Creating the watch face templates\">Creating the watch face templates<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/aireviewirush.com\/?p=19236\/#Packaging_and_validation\" title=\"Packaging and validation\">Packaging and validation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/aireviewirush.com\/?p=19236\/#Sending_the_watch_face\" title=\"Sending the watch face\">Sending the watch face<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/aireviewirush.com\/?p=19236\/#Putting_in_the_watch_face_on_the_watch\" title=\"Putting in the watch face on the watch\">Putting in the watch face on the watch<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/aireviewirush.com\/?p=19236\/#Setting_the_lively_watch_face\" title=\"Setting the lively watch face\">Setting the lively watch face<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/aireviewirush.com\/?p=19236\/#Get_began_with_Watch_Face_Push_for_Put_on_OS\" title=\"Get began with Watch Face Push for Put on OS\">Get began with Watch Face Push for Put on OS<\/a><\/li><\/ul><\/nav><\/div>\n<h3 dir=\"ltr\" style=\"margin-bottom: 4pt; margin-top: 16pt;\"><span class=\"ez-toc-section\" id=\"Creating_the_watch_face_templates\"><\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #434343; font-size: 14pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Creating the watch face templates<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">The watch face is created from a template, itself designed in<\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><a href=\"https:\/\/www.figma.com\/community\/plugin\/1537485193225852308\/watch-face-designer\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">Watch Face Designer<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">. <\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">That is our new Figma plugin that lets you create <\/span><a href=\"https:\/\/developer.android.com\/training\/wearables\/wff\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">Watch Face Format<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> watch faces immediately inside Figma.<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt; text-align: center;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"><span style=\"border: none; display: inline-block; height: 100%; max-width: 447px; overflow: hidden;\"><img loading=\"lazy\" decoding=\"async\" height=\"242\" src=\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEg2grARsqVXD-BvTZaB8j7U_dWU_Z96yfFrb4DVmhDU7-2Lx5rI9pzwao-xc5pFZvAUcOy0lwBw7NVyEiNL9e5QX3HZNHZZYSaMXk-BXbVeOx8fYhbnoE0FEGChV68H093KlLyplzFhIllPPuSASd_52qfInTZCwhqZxCagE6thDCTKb9vpUksRmCr1Grc\" style=\"margin-left: 0px; margin-top: 0px;\" width=\"447\" alt=\"\"><br \/><span style=\"color: #666666; font-style: italic;\">An Androidify watch face template in Watch Face Designer<\/span><\/span><\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">The plugin permits the watch face to be exported in a <\/span><a href=\"https:\/\/developer.android.com\/training\/wearables\/watch-face-designer\/export\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">vary of various methods<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">, together with as Watch Face Format (WFF) sources. These can then be simply integrated as <\/span><a href=\"https:\/\/github.com\/android\/androidify\/tree\/main\/watchface\/src\/main\/assets\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">property inside the Androidify app<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">, for dynamically constructing the finalized watch face.<\/span><\/p>\n<h3 dir=\"ltr\" style=\"margin-bottom: 4pt; margin-top: 16pt;\"><span class=\"ez-toc-section\" id=\"Packaging_and_validation\"><\/span><span face=\"Arial,sans-serif\" style=\"background-color: transparent; color: #434343; font-size: 14pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Packaging and validation<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">As soon as the<\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><a href=\"https:\/\/github.com\/android\/androidify\/blob\/main\/watchface\/src\/main\/java\/com\/android\/developers\/androidify\/watchface\/creator\/WatchFaceCreator.kt#L49\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">template and avatar have been mixed<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">, <\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">the <\/span><a href=\"https:\/\/github.com\/google\/pack\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">Moveable Asset Compiler Package<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> (Pack) is used to assemble an APK.<\/span><\/p>\n<p><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">In Androidify, Pack is used as a <\/span><a href=\"https:\/\/github.com\/android\/androidify\/tree\/main\/watchface\/src\/main\/jniLibs\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;\">native library on the telephone<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">. <\/span><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">For extra particulars on how Androidify interfaces with the Pack library, see the <\/span><a href=\"https:\/\/github.com\/android\/androidify\/blob\/main\/watchface\/pack-java\/src\/lib.rs\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;\">GitHub repository<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">.<\/span><\/p>\n<p><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">As a remaining step earlier than transmission, the APK is checked by th<\/span><span face=\"'Google Sans',sans-serif\" style=\"color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">e <\/span><a href=\"https:\/\/developer.android.com\/training\/wearables\/watch-face-push#validation\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;\">Watch Face Push validator<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">.<\/span><\/p>\n<p><span style=\"color: #666666;\">This validator checks that the APK is appropriate for set up. This consists of checking the contents of the APK to make sure it&#8217;s a legitimate watch face, in addition to some efficiency checks. Whether it is legitimate, then the validator produces a token.<\/span><\/p>\n<p><span style=\"color: #666666;\">This token is required by the look ahead to set up.<\/span><\/p>\n<h3 dir=\"ltr\" style=\"margin-bottom: 4pt; margin-top: 16pt;\"><span class=\"ez-toc-section\" id=\"Sending_the_watch_face\"><\/span><span face=\"Arial,sans-serif\" style=\"background-color: transparent; color: #434343; font-size: 14pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Sending the watch face<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">The Androidify app on Put on OS makes use of<\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><a href=\"https:\/\/github.com\/android\/androidify\/blob\/main\/wear\/src\/main\/java\/com\/android\/developers\/androidify\/service\/AndroidifyDataListenerService.kt\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">WearableListenerService<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">to pay attention for occasions on the Wearable Information Layer.<\/span><\/p>\n<p><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">The telephone app<\/span><span face=\"'Google Sans',sans-serif\" style=\"color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\"> <\/span><a href=\"https:\/\/github.com\/android\/androidify\/blob\/main\/watchface\/src\/main\/java\/com\/android\/developers\/androidify\/watchface\/transfer\/WearAssetTransmitter.kt\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;\">transfers the watch face<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\"> <\/span><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">through the use of a mixture of<\/span><span face=\"'Google Sans',sans-serif\" style=\"color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\"> <\/span><span face=\"'Google Sans',sans-serif\" style=\"color: #188038; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">MessageClient<\/span><span face=\"'Google Sans',sans-serif\" style=\"color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\"> <\/span><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">to arrange the method, then<\/span><span face=\"'Google Sans',sans-serif\" style=\"color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\"> <\/span><span face=\"'Google Sans',sans-serif\" style=\"color: #188038; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">ChannelClient<\/span><span face=\"'Google Sans',sans-serif\" style=\"color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\"> <\/span><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">to stream the APK.<\/span><\/p>\n<h3 dir=\"ltr\" style=\"margin-bottom: 4pt; margin-top: 16pt;\"><span class=\"ez-toc-section\" id=\"Putting_in_the_watch_face_on_the_watch\"><\/span><span face=\"Arial,sans-serif\" style=\"background-color: transparent; color: #434343; font-size: 14pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Putting in the watch face on the watch<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">As soon as the watch face is acquired on the Put on OS machine, the Androidify app makes use of the brand new <\/span><a href=\"https:\/\/developer.android.com\/training\/wearables\/watch-face-push\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">Watch Face Push API<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> to put in the watch face:<\/span><\/p>\n<div style=\"background-color: whitesmoke; border-radius: 8px; padding: 16px;\">\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: #1967d2; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">val<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">wfpManager<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">=<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">\u00a0<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0WatchFacePushManagerFactory.createWatchFacePushManager(context)<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: #1967d2; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">val<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">response<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">=<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">wfpManager.listWatchFaces()<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: #1967d2; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">strive<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">{<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"background-color: transparent; color: #1967d2; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">if<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">(response.remainingSlotCount<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">&gt;<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #c5221f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">0<\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">)<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">{<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">wfpManager.addWatchFace(apkFd,<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">token)<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">}<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #1967d2; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">else<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">{<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"background-color: transparent; color: #1967d2; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">val<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">slotId<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">=<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">response.installedWatchFaceDetails.first().slotId<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">wfpManager.updateWatchFace(slotId,<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">apkFd,<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">token)<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">}<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #1967d2; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">catch<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">(a:<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">WatchFacePushManager.AddWatchFaceException)<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">{<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"background-color: transparent; color: #1967d2; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">return<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">WatchFaceInstallError.WATCH_FACE_INSTALL_ERROR<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">}<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #1967d2; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">catch<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">(u:<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">WatchFacePushManager.UpdateWatchFaceException)<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">{<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"background-color: transparent; color: #1967d2; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">return<\/span><span style=\"background-color: transparent; color: black; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> <\/span><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">WatchFaceInstallError.WATCH_FACE_INSTALL_ERROR<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: #37474f; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">}<\/span><\/p>\n<\/div>\n<p><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">Androidify makes use of both the <\/span><span face=\"'Google Sans',sans-serif\" style=\"color: #188038; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">addWatchFace<\/span><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\"> or <\/span><span face=\"'Google Sans',sans-serif\" style=\"color: #188038; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\">updateWatchFace<\/span><span face=\"'Google Sans',sans-serif\" style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;\"> methodology, relying on the state of affairs: Watch Face Push defines an idea of \u201cslots\u201d &#8211; what number of watch faces a given app can have put in at any time. For Put on OS 6, this worth is in truth 1.<\/span><\/p>\n<p><span style=\"color: #666666;\">Androidify\u2019s method is to put in the watch face if there&#8217;s a free slot, and if not, any current watch face is swapped out for the brand new one.<\/span><\/p>\n<h3 dir=\"ltr\" style=\"margin-bottom: 4pt; margin-top: 16pt;\"><span class=\"ez-toc-section\" id=\"Setting_the_lively_watch_face\"><\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #434343; font-size: 14pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Setting the lively watch face<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Putting in the watch face programmatically is a superb step, however Androidify seeks to make sure the watch face can also be the lively watch face.\u00a0<\/span><\/p>\n<p><span style=\"color: #666666;\">Watch Face Push introduces a brand new runtime permission which have to be granted to ensure that apps to have the ability to obtain this:<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt; text-align: center;\"><span style=\"background-color: transparent; color: #188038; font-family: 'Roboto Mono',monospace; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">com.google.put on.permission.SET_PUSHED_WATCH_FACE_AS_ACTIVE<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">As soon as this permission has been acquired, the <\/span><span style=\"background-color: transparent; color: #188038; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">wfpManager.setWatchFaceAsActive()<\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> methodology will be referred to as, to set an put in watch face to being the lively watch face.<\/span><\/p>\n<p><span style=\"color: #666666;\">Nevertheless, there are a selection of concerns that Androidify has to navigate:<\/span><\/p>\n<ul style=\"margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;\">\n<li aria-level=\"1\" dir=\"ltr\" style=\"background-color: transparent; color: #666666; font-family: &quot;Google Sans&quot;, sans-serif; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: #188038; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">setWatchFaceAsActive<\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> can solely be used as soon as.<\/span><\/p>\n<\/li>\n<li aria-level=\"1\" dir=\"ltr\" style=\"background-color: transparent; color: #666666; font-family: &quot;Google Sans&quot;, sans-serif; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: #188038; font-family: 'Roboto Mono',monospace; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">SET_PUSHED_WATCH_FACE_AS_ACTIVE<\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\"> can&#8217;t be re-requested after being denied by the person.<\/span><\/p>\n<\/li>\n<li aria-level=\"1\" dir=\"ltr\" style=\"background-color: transparent; color: #666666; font-family: &quot;Google Sans&quot;, sans-serif; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Androidify may already be answerable for the lively watch face.<\/span><\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">For extra particulars see how Androidify <\/span><a href=\"https:\/\/github.com\/android\/androidify\/blob\/main\/wear\/src\/main\/java\/com\/android\/developers\/androidify\/watchfacepush\/WatchFaceOnboardingRepository.kt#L58\" style=\"text-decoration: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"'Google Sans',sans-serif\" style=\"-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline;\">implements the set lively logic<\/span><\/a><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">.<\/span><\/p>\n<h3 dir=\"ltr\" style=\"margin-bottom: 4pt; margin-top: 16pt;\"><span class=\"ez-toc-section\" id=\"Get_began_with_Watch_Face_Push_for_Put_on_OS\"><\/span><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #434343; font-size: 14pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Get began with Watch Face Push for Put on OS<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Watch Face Push is a flexible API, equally suited to enhancing Androidify as it&#8217;s to constructing fully-featured watch face marketplaces.<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">Maybe you&#8217;ve gotten an current telephone app and are on the lookout for alternatives to additional have interaction and delight your customers?<\/span><\/p>\n<p><span style=\"color: #666666;\">Or maybe you\u2019re an current watch face developer trying to create your personal neighborhood and gallery via releasing a market app?<\/span><\/p>\n<p><span style=\"color: #666666;\">Check out these sources:<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span id=\"docs-internal-guid-b3b3ac9d-7fff-d14e-8f46-b978556ef7c7\"><span style=\"font-family: inherit;\"><span style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">And in addition take a look at the <\/span><a href=\"https:\/\/www.youtube.com\/watch?v=JgsPXZIKInw&amp;feature=youtu.be\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">accompanying video<\/span><\/a><span style=\"color: #666666; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> for a greater-depth have a look at how we introduced Androidify to Put on OS!<\/span><\/span><\/span><\/p>\n<p dir=\"ltr\" style=\"margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"'Google Sans',sans-serif\" style=\"background-color: transparent; color: #666666; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;\">We\u2019re trying ahead to what you\u2019ll create with Watch Face Push!<\/span><\/p>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Posted by Garan Jenkin &#8211; Developer Relations Engineer A number of months in the past we relaunched Androidify as an app for producing personalised Android bots. Androidify transforms your selfie photograph right into a playful Android bot utilizing Gemini and Imagen. Nevertheless, on condition that Android spans a number of type elements, together with our [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":19239,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":{"0":"post-19236","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-mobile"},"_links":{"self":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/19236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19236"}],"version-history":[{"count":1,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/19236\/revisions"}],"predecessor-version":[{"id":19238,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/19236\/revisions\/19238"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/media\/19239"}],"wp:attachment":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}