• Learn
    • Code Lab
    • Foldables and Large Screens
    • One UI Beta
  • Develop
    • Mobile/Wearable
    • Galaxy GameDev
    • Galaxy Themes
    • Galaxy Watch
    • Health
    • Samsung Blockchain
    • Samsung DeX
    • Samsung IAP
    • Samsung Internet
    • Samsung Pay
    • Samsung Wallet
    • View All
      • Galaxy AR Emoji
      • Galaxy Accessory
      • Galaxy Edge
      • Galaxy Z
      • Galaxy Performance
      • Galaxy FM Radio
      • Galaxy S Pen Remote
      • Galaxy Sensor Extension
      • PENUP
      • Samsung Automation
      • Samsung Neural
      • Samsung TEEGRIS
      • Samsung eSE SDK
      • Galaxy Watch for Tizen
      • Watch Face Studio
      • One UI Watch for Tizen
      • Galaxy Watch Studio Converter
      • Samsung IAP for Galaxy Watch (Tizen)
    • Visual Display
    • Smart TV
    • Smart Hospitality Display
    • Smart Signage
    • Digital Appliance
    • Family Hub
    • Platform
    • Bixby
    • Knox
    • SmartThings
    • Tizen.NET
  • Design
    • Design System
    • One UI
    • One UI Watch
    • Smart TV
  • Distribute
    • Galaxy Store
    • TV Seller Office
    • Galaxy Store Games
    • Instant Plays
  • Support
    • Developer Support
    • Remote Test Lab
    • Samsung Android USB Driver
    • Galaxy Emulator Skin
  • Connect
    • Blog
    • News
    • Forums
    • Events
    • Samsung Developer Conference
    • SDC23
    • SDC22
    • SDC21
    • SDC19 and Previous Events
  • Sign In
Top Global Search Form
Recommendation
  • Blog
  • Code Lab
  • Foldable and Large Screen Optimization
  • Forums
  • Galaxy Emulator Skin
  • Galaxy GameDev
  • Health
  • Remote Test Lab
  • SDC22
  • Watch Face Studio
All Search Form
Recommendation
    Suggestion
      All Search Form
      Filter
      Filter
      Filter
      • ALL (54)
      • DOCS
      • SDK
      • API REFERENCE
      • CODE LAB
      • BLOG
      • NEWS/EVENTS
      • OTHERS
        api reference code lab blog news/events
      1. tutorials | galaxy watch

      blog

      Watch Face Studio: Theme Color Implementation Basics

      samsung galaxy watches run on wear os powered by samsung and have many features, including custom watch faces that you can create with watch face studio (wfs). wfs provides a "theme" feature that allows you to implement multi-color theme palettes to watch face components. theme colors enhance your watch faces by making them more expressive and attractive, and give users customization options. this article introduces the basic concepts of creating color themes for watch faces: defining theme color palettes applying theme colors to components using theme colors on different backgrounds to follow along with the demonstrations in this article, install watch face studio and download the sample project. defining theme color palettes to apply theme colors to watch face components, you must define a theme color palette. wfs enables you to add up to 30 theme colors to a project. to create a theme color palette: in your wfs project, select the “style” tab. click the “+” (plus sign) button next to “theme color palette.” use the color picker to define the color you want. click "ok" to set the chosen color. figure 1: adding theme colors each row in the “theme color palette” section represents a separate theme color palette. a theme color palette is initially created with a single color, but a palette supports up to three colors. the additional colors can be different shades of the main color or contrasting colors. to implement additional colors for a palette: in the “theme color palette” section, select the theme color you want to change. use the color picker to define the color you want. you can also check how the selected color compares to the original color. click "ok" to set the chosen color. figure 2: adding theme colors to a palette the following figure shows several multi-color theme palettes defined for the project. figure 3: multi-color theme palettes applying theme colors to components when you have defined one or more theme color palettes, you can apply the colors to the watch face components. to apply a theme color to a watch face component: select the component and go to the “properties” tab. unfold the “color” section. fill the “apply theme color” checkbox. from the dropdown menu, select whether to apply the first,second, or third theme color from the palette. figure 4: applying theme color to a component to quickly apply the theme color to components: select the components you want to apply the theme color to. in the “layer” tab, click the “apply theme color” icon to cycle through the first, second, and third theme color. the following figure shows the theme colors applied to the components in the sample project. the theme color is not applied to the step icon, battery icon, and progress bars. figure 5: theme colors applied to multiple components now that you have applied theme colors to the watch face components, you can preview the result on the "run" tab or the run window. you can use the selected theme color from the "run" tab of wfs and see the output in the preview window. figure 6: theme color preview note : note: icons and images on complications are converted to grayscale after theme colors are applied. consequently, theme colors can appear differently on them. for information about applying theme colors to complications, see design complications using watch face studio. using theme colors on different backgrounds to expand the customization options of your watch face, you can implement multiple backgrounds to complement the theme color palettes. users can combine their choice of theme color palette and background to suit their preference. to add a background to the watch face: add an image component and define the image as the background. if you want to add more background images, select the background component. in the “style” tab, click the “+” (plus sign) button and select the images to be implemented as backgrounds. you can use the customization editor to preview any combination of theme color palette and background: to open the customization editor, in the “style” tab, click the “customization editor” button. use the side menu to switch between the colors and backgrounds you want to preview. figure 7: customization editor you can also preview the theme colors from the “run” tab. the following examples demonstrate how the same theme colors can provide a different look and feel depending on the background. figure 8: theme colors against varying backgrounds finally, test your watch face on an actual watch or emulator. with up to 10 backgrounds and 30 theme colors, up to 300 background and color combinations are possible. figure 9: examples of sample project output additional resources for more information on designing watch faces with watch face studio, see create a watch face with watch face studio on the android developers site. discuss ideas with other expert developers at samsung developers forum and get tips, help, and answers to your development questions. learn more about watch face studio and other samsung sdks and tools from the samsung developers blog.

      Most Fowziya Akther Houya

      https://developer.samsung.com/sdp/blog/en-us/2023/04/05/watch-face-studio-theme-color-implementation-basics
      1. Learn
      2. Code Lab

      codelab

      Transfer heart rate data from Galaxy Watch to a mobile device with Samsung Privileged Health SDK

      transfer heart rate data from galaxy watch to a mobile device with samsung privileged health sdk objective create a health app for galaxy watch, operating on wear os powered by samsung, to measure heart rate and inter-beat interval (ibi), send data to a paired android phone, and create an android application for receiving data sent from a paired galaxy watch. partnership request in this code lab, you will use a specially prepared mock library. it has limited functionality and uses dummy data instead of real-time data. you will need the full version of the samsung privileged health sdk library to get real values, which is available to samsung partners. apply as a partner by checking out the partner app program for exclusive samsung privileged health sdk access. overview with this code lab, you can measure various health data using samsung privileged health sdk and send it to a paired android mobile device for further processing. using a paired mobile device will make the data more organized by taking advantage of a bigger screen and saving health data to a local database or remote server. see samsung privileged health sdk descriptions for detailed information. set up your environment you will need the following: galaxy watch4 or newer, powered by wear os android mobile device android studio (latest version recommended) java se development kit (jdk) 17 or later sample code here is a sample code for you to start coding in this code lab. download it and start your learning experience! heart rate data transfer sample code (196.70 kb) notethis code lab uses mock library, which has limited functionality with dummy data. data from the mock library is not from the galaxy watch’s real sensor data. you need a full version of the samsung privileged health sdk library to get actual values and it's only available to registered partners. connect your galaxy watch to wi-fi go to settings > connection > wi-fi and make sure that the wi-fi is enabled. from the list of available wi-fi networks, choose and connect to the same one as your pc. turn on developer mode and adjust its settings on your watch, go to settings > about watch > software and tap on software version 5 times. upon successful activation of developer mode, a toast message will display as on the image below. afterwards, developer options will be visible under settings. tap developer options and enable the following options: adb debugging in developer options find wireless debugging turn on wireless debugging check always allow on this network and tap allow go back to developer options and click turn off automatic wi-fi notethere may be differences in settings depending on your one ui version. connect your galaxy watch to android studio go to settings > developer options > wireless debugging and choose pair new device. take note of the wi-fi pairing code, ip address & port. in android studio, go to terminal and type: adb pair <ip address>:<port> <wi-fi pairing code> when prompted, tap always allow from this computer to allow debugging. after successfully pairing, type: adb connect <ip address of your watch>:<port> upon successful connection, you will see the following message in the terminal: connected to <ip address of your watch> now, you can run the app directly on your watch. turn on developer mode for health platform this step is only applicable to registered partners of samsung privileged health sdk. you can replace priv-health-tracking-mock-2023.aar in app > libs with the real library to receive real sensor data with the application. this requires health platform to be set in developer mode: on your watch go to settings > apps > health platform. quickly tap health platform title for 10 times. this enables developer mode and displays [dev mode] below the title. to stop using developer mode, quickly tap health platform title for 10 times to disable it. set up your android device click on the following links to setup your android device: enable developer options run apps on a hardware device connect the galaxy watch with you samsung mobile phone start your project after downloading the sample code containing the project files, in android studio click open to open an existing project. locate the downloaded android project (hrdatatransfer-code-lab) from the directory and click ok. parse data from the watch after opening the sample project, you need to parse the ibi data collected while tracking the heart rate-related data. the updatelistener collects datapoint instances from the watch, which contains a collection of valuekey objects. those objects contain heart rate, ibi values, and ibi statuses. there's always one value for heart rate while the number of ibi values vary from 0-4. both ibi value and ibi status lists have the same size. go to the wear > java > data > com.samsung.health.hrdatatransfer. under ibidataparsing.kt, provide the implementation for the function below: /******************************************************************************* * [practice 1] get list of valid inter-beat interval values from a datapoint * - return arraylist<int> of valid ibi values (validibilist) * - if no ibi value is valid, return an empty arraylist * * var ibivalues is a list representing ibivalues (up to 4) * var ibistatuses is a list of their statuses (has the same size as ibivalues) ------------------------------------------------------------------------------- * - (hints) * use local function: isibivalid(status, value) to check validity of ibi * ****************************************************************************/ fun getvalidibilist(datapoint: datapoint): arraylist<int> { val ibivalues = datapoint.getvalue(valuekey.heartrateset.ibi_list) val ibistatuses = datapoint.getvalue(valuekey.heartrateset.ibi_status_list) val validibilist = arraylist<int>() //todo 1 return validibilist } check data sending capabilities for the watch once the heart rate tracker can collect data, set it up so it can send data to a paired android mobile device. first, check if the devices within range have proper capabilities. the capability data type is a string and is used when sending a message on both devices. go to the wear > java > com.samsung.health.hrdatatransfer > data. in capabilityrepositoryimpl.kt, and fill in the function below: /************************************************************************************** * [practice 2] check capabilities for reachable remote nodes (devices) * - return a set of node objects out of all capabilities represented by 2nd function * argument, having the capability represented by 1st function argument. * - return empty set if no node has the capability -------------------------------------------------------------------------------------- * - (hints) * you might want to use filtervalues function on the given allcapabilities map * ***********************************************************************************/ override suspend fun getnodesforcapability( capability: string, allcapabilities: map<node, set<string>> ): set<node> { //todo 2 } the purpose of this exercise is to identify which nodes have the exact capability you are looking for (represented by capability argument). you need those nodes later to send the message to them. encode message for the watch before sending the results of the heart rate and ibi to the paired mobile device, you need to encode the message into a string. go to the wear > java > com.samsung.health.hrdatatransfer > domain. in sendmessageusecase.kt, fill in the function below and use json format to encode the list of results (arraylist<trackeddata>) into a string: /*********************************************************************** * [practice 3] - encode heart rate & inter-beat interval into string * - encode function argument (trackeddata) into json format. * - return the encoded string ----------------------------------------------------------------------- * - (hint) * use json.encodetostring function **********************************************************************/ fun encodemessage(trackeddata: arraylist<trackeddata>): string { //todo 3 } run unit tests for your convenience, you will find an additional unit tests package. this will let you verify your code changes even without using a physical watch or mobile device. see the instruction below on how to run unit tests: right click on com.samsung.health.hrdatatransfer (test), and execute run 'tests in 'com.samsung.health.hrdatatransfer" command. do the same step with the mobile module. if you have completed all the tasks correctly, you will see all the unit tests pass successfully. run the app after building the apks, you can run the applications on your watch to measure heart rate and ibi values, and on your mobile device to collect the data from your watch. once the app starts, allow the app to receive data from the body sensors. afterwards, it shows the application's main screen. to get the heart rate and ibi values, tap the start button. tap the send button to send the data to your mobile device. notethe watch keeps last ~40 values of heart rate and ibi. you’re done! congratulations! you have successfully achieved the goal of this code lab. now, you can create a health app on a watch to measure heart rate and ibi, and develop a mobile app that receives that health data! if you face any trouble, you may download this file: heart rate data transfer complete project (195.74 kb) to learn more about samsung health, visit: developer.samsung.com/health

      https://developer.samsung.com/codelab/health/heart-rate-data-transfer.html
      1. featured

      blog

      Samsung Developers Top 10 Moments of 2021

      another year will soon be past and, like many of you, we’re looking forward to next year. we’ll be taking some time the next few weeks to be with our families, and will be back in 2022 with more blogs, podcasts, product announcements, and ways for you to succeed with galaxy store and samsung platforms. with the end-of-year holidays upon us, we’re stopping to reflect on what we did in 2021. even with covid making a disruption in everyone’s lives, we’re still here to help developers find answers and hopefully, also find success. here are some of our most memorable moments. 10. developer portal refresh brought a modern look and support for mobile we’ve been working for several years to bring samsung’s developer portal into a single web infrastructure. we moved content from multiple servers and cloud services into a cms that uses open standards and a responsive design for mobile devices. we pored through a decade of content to make sure it was still timely and accurate for your needs today. we integrated the developer forums to use the same samsung account login for both the developer portal and seller portal to give you a more seamless experience. in october of this year, we made a ux refresh to the site and the most amazing thing is how easy that process went. there were no late nights in the weeks prior to launch. we were able to test the new ux in a sandbox rigorously. then the deployment to production happened almost instantaneously. we spent less time worrying about our website and more time creating the content you need to do your work. we understand how important the samsung developer portal is to you and your work. that’s why we took the time to ensure a smooth transition as we made major infrastructure changes. 9. monthly updates keep developers up-to-date on new galaxy store features the galaxy store product management team began publishing monthly newsletters to enlighten developers of the latest features and improvements to seller portal. these updates also usually appear as blog posts in the first week or two of the month. some of the major announcements include: staged app rollouts (october) local currencies in settlement and financial reports (september) private beta testing (july) galaxy store developer api (april) look for more exciting improvements in 2022 as galaxy store continues to innovate. 8. unpacked events bring exciting new product announcements galaxy unpacked in january 2021 brought announcements of the galaxy buds pro, galaxy s21, and the new galaxy smarttag. the event highlighted samsung’s design concepts with one ui 3 and integrated experiences from partners like microsoft and google. the august galaxy unpacked event brought announcements of galaxy z fold3 and galaxy z flip3 phones. these devices have many new hardware and software features for developers to build upon. this blog post highlighted many of the ways that developers can implement features supporting flex mode and s pen remote, while ensuring that users have a seamless experience with app continuity. the most anticipated announcement of the august galaxy unpacked event was the unveiling of galaxy watch4, featuring wear os, powered by samsung. as with the tizen-powered galaxy watch devices, samsung released a new tool, galaxy watch studio converter, to help existing designers bring their watch faces to wear os. designers could also start a new watch face project from scratch with the newly-released watch face studio tool. 7. remote test lab updates allow developers to experience the latest hardware as new devices are announced, developers can use the remote test lab (rtl) to ensure that their apps work properly on the new version of one ui as well as different screen resolutions and pixel densities. in 2021, the rtl development team added support for foldables and galaxy s21 devices, allowing developers to ensure their apps work correctly before the devices are available to consumers. the rtl team also added support for android studio. in september, thousands of devices were added in data centers around the world to ensure that a compatible device is always available. as part of this release, rtl was re-engineered to work exclusively in the chrome browser, so that no external software is needed to test apps on all the latest devices. 6. samsung developer forums activity the samsung developer forums, based on the popular open-source discourse project, were introduced in january 2020, replacing an aging forum infrastructure that didn’t work well on mobile devices. by using the same samsung account authentication method as the samsung developers site, we’re able to provide a nearly-seamless experience across different hosts and platforms. since their introduction, we’ve seen large numbers of visitors stop by the forums with questions. community manager ron liechty has more than 25 years of experience in managing healthy communities—his knowledge and guidance keeps the forums a useful resource for developers. some of these visitors have become our best community members, providing valuable feedback to their peers as well as helping to moderate spam and malicious content. 5. supporting game developers in 2021 games are a noticeable part of the galaxy store experience and we work with many partners and internal teams to ensure that gamers have a great experience on galaxy devices. the galaxy gamedev team works closely with some of the top publishers and developers to improve performance of top titles on mobile. this team creates tools that provide great detail on the performance of the cpu and gpu during intense moments of gameplay. the gamedev team then documents their efforts in a series of best practices and blog posts to help developers everywhere. in addition to our internal team work, we frequently work with our partners at arm to deliver relevant content for game developers. this summer, we published and promoted a number of educational articles, webinars, and training series in cooperation with the arm developer team. best practices for mobile game developers and artists new vulkan extensions for mobile: maintenance extensions new vulkan extensions for mobile: legacy support extensions new game changing vulkan extensions for mobile: descriptor indexing new game changing vulkan extensions for mobile: buffer device address new game changing vulkan extensions for mobile: timeline semaphores mike barnes from the gamedev team, together with eric cloninger from the samsung developers team, presented at the virtual gdc2021 event in july. gdc is an important event for all of us at samsung and we hope to see you all there at the live event in march 2022. 4. new voices appeared on samsung developers podcast, season 2 shortly before the covid-19 pandemic changed our lives, tony morelan from samsung developers attended a podcasting event and came back to the office inspired to start a podcast. he lined up guests from internal teams and important partners. everyone had a great time participating and it gave us a way to continue delivering quality content to developers. as 2020 turned to 2021, we continued bringing interesting guests from across the mobile design and development ecosystem. we used the podcast to talk about the upcoming virtual samsung developer conference and chat with the people that made the event a success. here are some of the highlights from season 2 of the samsung developers podcast: drazen stojcic, urarity – watch faces, design tan nguyen, butterfly-effected gmbh – galaxy themes, marketing, licensing the samsung internet advocacy team – web standards, privacy, foldable devices we’re still hoping for a return to days where we can travel and meet in person, but until that time comes, please join us in listening to these industry veterans and top developers on the samsung developers podcast. season 3 begins in early 2022. 3. blog series instructs readers on design and successful marketing without live events the past two years, we have searched for new ways to continue delivering timely and helpful advice to mobile app designers and developers. as mentioned previously, we worked with arm this year to bring great technical content front and center. we also worked with our network of top designers, developers, and thought leaders on concepts that will help you succeed on galaxy store and in creating better experiences for your users: better for all – in this blog series, we talked with leading designers and experts to help understand the increasingly important concepts behind the diversity, equality, and inclusion movement. this series discussed aspects of language used in apps, themes, and watch designs. it also highlights important guidelines to ensure apps and web sites are accessible to users with sight, mobility, and hearing impairments. better for all: mobile accessibility better for all: inclusive policies with daniel appelquist better for all: equal accessibility better for all: bringing diversity to design with eglantina hasaj and manpreet kaur better for all: diversity in design better for all: developing and designing for diversity refresh for success – it’s not enough to simply submit a title to a digital marketplace and assume success will follow and continue without extra effort. in this series, top galaxy store designers and developers talk about how they maintain their product lines to ensure a steady flow of revenue and new customers. refresh for success: maintain quality themes design with olga gabay from zeru studio refresh for success: improve your process to keep designs fresh with tan nguyen from butterfly-effected, gmbh refresh for success: improve your process and de-clutter your galaxy store with drazen stojcic from urarity prime time design – finding success in designing new products is an intensely unique and personal process. the prime time design series includes interviews with some of the most unique people creating for galaxy store. read how these talented people inspire themselves and how they convert that inspiration into action. prime time design: unpacking the creative process with ramon campos from friss in motion prime time design: unpacking the creative process with pedro machado from health face prime time design: unpacking the creative process with john shih from x9 studio strategies for success – tony morelan was a successful watch face designer before coming to work with the samsung developers team. we’re grateful for his knowledge of design as well as how to turn designs into revenue. in this four-part series, tony points out steps to creating successful galaxy store product submissions. strategies for success: selling your apps strategies for success: understanding consumer trends strategies for success: building your fan base strategies for success: making your brand successful 2. best of galaxy store awards highlight successful developers the galaxy store app on your mobile device is more than just an app. behind the scenes, there is a team of developers, product managers, business leaders, and security experts devoted to ensuring the best possible online experience for consumers in 180 countries. because of their dedication, developers and designers have a great platform for monetizing their work. each year, the samsung developers team works with the galaxy store operations and business development teams to determine the best games, apps, and themes based on revenue, downloads, and impact to consumers. the result is the best of galaxy store awards. in 2018 and 2019, the best of galaxy store awards were presented live, on stage, at the samsung developer conference (sdc). without a live event in 2020 or 2021, the samsung developers team decided to continue the tradition of highlighting and awarding our top galaxy store products. even without an in-person event, we used a live premiere on youtube to have a single moment in time to celebrate with the winners. tony morelan emceed the event, but he had a lot of help from ron liechty, jeanne hsu, susie perez, and shelly wu. we thank them for their hard work. we hope you’ll enjoy watching! look for the “best of galaxy store” sash on apps, games, themes, and watch faces in galaxy store to know that you’re getting a truly unique experience. 1. discovering new opportunities at sdc21 each year, the samsung developer conference is the culmination of an incredible amount of planning and work by hundreds of people. even though the event was virtual in 2021, there was still a huge volume of work. instead of preparing for a live audience, our teams practiced in front of a galaxy phone on a tripod (really). instead of building booths and planning meals, we built a website and social media campaigns to reach a larger audience. eric cloninger and tony morelan kicked off the promotion for sdc21 with a podcast featuring a previous sdc speaker, chris shomo. before the conference, visitors were invited to create whimsical caricatures of themselves using the mysdcstack mini-site and submit their designs to social media. by participating in the event website, watching sessions, and trying the code labs, visitors would earn points toward a prize drawing after sdc. relive the experience of sdc21 by watching the keynote or any of the highlight sessions and technical talks by viewing this playlist wrapping up when sdc is finished, our team takes a collective deep breath, happy to be done. it is a satisfying experience to pull off a big industry event. we don’t know yet how we’ll handle live events, but we remain optimistic that some will occur. we are making plans and we hope we’ll be able to see you, somewhere, in 2022. 🤞 take care. stay warm (or cool). best wishes to you all and happy new year!

      https://developer.samsung.com/sdp/blog/en-us/2021/12/16/samsung-developers-top-10-moments-of-2021
      1. Learn
      2. Code Lab

      codelab

      Measure skin temperature on Galaxy Watch with Samsung Privileged Health SDK

      measure skin temperature on galaxy watch with samsung privileged health sdk objective create a health app for galaxy watch, operating on wear os powered by samsung, utilizing samsung privileged health sdk to obtain skin temperature measurement results. partnership request in this code lab, you will use a specially prepared mock library. it has limited functionality and uses dummy data instead of real-time data. you will need the full version of the samsung privileged health sdk library to get real values, which is available to samsung partners. apply as a partner by checking out the partner app program for exclusive samsung privileged health sdk access. overview samsung privileged health sdk provides means of accessing and tracking health information contained in the health data storage. its tracking service gives raw and processed sensor data such as accelerometer and body composition data sent by the samsung bioactive sensor. the active sensor of galaxy watch runs powerful health sensors such as photoplethysmogram (ppg), electrocardiogram (ecg), bioelectrical impedance analysis (bia), sweat loss, and spo2. see samsung privileged health sdk descriptions for detailed information. set up your environment you will need the following: galaxy watch5 or newer with updated health platform android studio (latest version recommended) java se development kit (jdk) 17 or later sample code here is a sample code for you to start coding in this code lab. download it and start your learning experience! skin temperature tracking sample code (123.64 kb) notethis code lab uses mock library, which has limited functionality with dummy data. data from the mock library is not from the galaxy watch’s real sensor data. you need a full version of the samsung privileged health sdk library to get actual values and it's only available to registered partners. the code lab works using a mock library on the galaxy watch4 or newer, while the official library works using galaxy watch5 or newer. connect your galaxy watch to wi-fi go to settings > connection > wi-fi and make sure that the wi-fi is enabled. from the list of available wi-fi networks, choose and connect to the same one as your pc. turn on developer mode and adjust its settings on your watch, go to settings > about watch > software and tap on software version 5 times. upon successful activation of developer mode, a toast message will display as on the image below. afterwards, developer options will be visible under settings. tap developer options and enable the following options: adb debugging in developer options find wireless debugging turn on wireless debugging check always allow on this network and tap allow go back to developer options and click turn off automatic wi-fi notethere may be differences in settings depending on your one ui version. connect your galaxy watch to android studio go to settings > developer options > wireless debugging and choose pair new device. take note of the wi-fi pairing code, ip address & port. in android studio, go to terminal and type: adb pair <ip address>:<port> <wi-fi pairing code> when prompted, tap always allow from this computer to allow debugging. after successfully pairing, type: adb connect <ip address of your watch>:<port> upon successful connection, you will see the following message in android studio’s terminal: connected to <ip address of your watch> now, you can run the app directly on your watch. turn on developer mode for health platform this step is only applicable to registered partners of samsung privileged health sdk. you can replace priv-health-tracking-mock-2023.aar in app > libs with the real library to receive real sensor data with the application. this requires health platform to be set in developer mode: on your watch go to settings > apps > health platform. quickly tap health platform title for 10 times. this enables developer mode and displays [dev mode] below the title. to stop using developer mode, quickly tap health platform title for 10 times to disable it. start your project after downloading the sample code containing the project files, open your android studio and click open to open an existing project. locate the downloaded android project (skintemptracking) from the directory and click ok. check tracking capabilities to track the data with the sdk, the device must support skin temperature, like the galaxy watch5. skin temperature tracking can work in 2 modes: batching and on-demand. the tracker type for batching is healthtrackertype.skin_temperature_continuous and healthtrackertype.skin_temperature for on-demand. in this code lab, you are going to use on-demand tracker. in connectionmanager.java, navigate to isskintemperatureavailable() function. use a provided healthtrackingservice object to create a healthtrackercapability instance, and send it to checkavailabletrackers() function, and assign its result to availabletrackers list. gettrackingcapability() returns a healthtrackercapability instance in healthtrackingservice object healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype. public healthtrackercapability gettrackingcapability() provide a healthtrackercapability instance to get a supporting healthtrackertype list. /****************************************************************************************** * [practice 1] check capabilities to confirm skin temperature availability * * ---------------------------------------------------------------------------------------- * * (hint) replace todo 1 with java code * get healthtrackercapability object from healthtrackingservice * send the object to checkavailabletrackers() ******************************************************************************************/ boolean isskintemperatureavailable(healthtrackingservice healthtrackingservice) { if (healthtrackingservice == null) return false; @suppresswarnings("unusedassignment") list<healthtrackertype> availabletrackers = null; //"todo 1" if (availabletrackers == null) return false; else return availabletrackers.contains(healthtrackertype.skin_temperature); } initialization of skin temperature tracker before starting the measurement, initialize the skin temperature tracker by creating a healthtracker object. in skintemperaturelistener.java, navigate to setskintemperaturetracker(). using the provided healthtrackingservice object, create an instance of the healthtracker class of skin_temperature type and assign it to the skintemperaturetracker object. gethealthtracker() with healthtrackertype.skin_temperature as an argument creates a healthtracker instance after a single measurement, the tracker should be stopped when using on-demand measurement. for continuous measurement, use healthtrackertype.skin_temperature_continuous healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype. healthtracker gethealthtracker(healthtrackertype healthtrackertype) create a healthtracker instance for the given healthtrackertype. /******************************************************************************************* * [practice 2] setup skin temperature tracker * * ---------------------------------------------------------------------------------------- * * (hint) replace todo 2 with java code * initialize skintemperaturetracker with proper samsung privileged health sdk functionality * call gethealthtracker() on healthtrackingservice object * use healthtrackertype.skin_temperature as an argument ******************************************************************************************/ void setskintemperaturetracker(healthtrackingservice healthtrackingservice) { //"todo 2" } starting and stopping the tracker for the client app to obtain the data through the sdk, set a listener method on healthtracker. this method is called every time there is new data. healthtrackerhealthtracker enables an application to set an event listener and get tracking data for a specific healthtrackertype. public void seteventlistener(healthtracker.trackereventlistener listener) set an event listener to the healthtracker instance. void starttracker() { if (!ishandlerrunning) { skintemperaturehandler.post(() -> skintemperaturetracker.seteventlistener(skintemperaturelistener)); ishandlerrunning = true; } } after the finished measurement, the on-demand tracker should be stopped. you can do that by unsetting the event listener from healthtracker. healthtrackerhealthtracker enables an application to set an event listener and get tracking data for a specific healthtrackertype. public void unseteventlistener() stop the registered event listener to this healthtracker instance. void stoptracker() { if (skintemperaturetracker != null) skintemperaturetracker.unseteventlistener(); skintemperaturehandler.removecallbacksandmessages(null); ishandlerrunning = false; } process obtained skin temperature data the answer from the healthtrackingservice is asynchronous. the skintemperaturelistener receives the callback containing a data point with all the required information. follow the steps below to get skin temperature data: in skintemperaturelistener.java, go to the updateskintemperature() function and read skin temperature data from datapoint: get skin temperature status using datapoint api (key: valuekey.skintemperatureset.status). get skin temperature value using datapoint api (key: valuekey.skintemperatureset.object_temperature). get ambient temperature value using datapoint api (key: valuekey.skintemperatureset.ambient_temperature) datapointdatapoint provides a map of valuekey and value with a timestamp. public <t>t getvalue(valuekey<t>type) get data value for the given key. private final healthtracker.trackereventlistener skintemperaturelistener = new healthtracker.trackereventlistener() { @override public void ondatareceived(@nonnull list<datapoint> list) { stoptracker(); for (datapoint data : list) { updateskintemperature(data); } } }; /******************************************************************************************* * [practice 3] read values from datapoint object * - get skin temperature status value * - get wrist skin temperature value - it's named "object_temperature" in the library * - get ambient temperature value ------------------------------------------------------------------------------------------- * - (hint) replace todo 3 with parts of code * (1) remove skintemperaturestatus.invalid_measurement and * set status from 'datapoint' object using data.getvalue(valuekey.skintemperatureset.status) * * if status is 'skintemperaturestatus.successful_measurement' then: * (2) set wristskintemperaturevalue from 'datapoint' object using: * data.getvalue(valuekey.skintemperatureset.object_temperature); * (3) set ambienttemperaturevalue from 'datapoint' object using: * data.getvalue(valuekey.skintemperatureset.ambient_temperature); ******************************************************************************************/ void updateskintemperature(datapoint data) { final int status = skintemperaturestatus.invalid_measurement; float wristskintemperaturevalue = 0; float ambienttemperaturevalue = 0; //"todo 3" trackerdatasubject.notifyskintemperaturetrackerobservers(status, ambienttemperaturevalue, wristskintemperaturevalue); } run unit tests for your convenience, you will find an additional unit tests package. this will let you verify your code changes even without using a physical watch. see the instruction below on how to run unit tests: right click on com.samsung.health.skintemptracking (test) and execute run 'tests in 'com.samsung.health.skintemptrackin" command. if you have completed all the tasks correctly, you can see all the unit tests pass successfully. run the app after building the apk, you can run the application on a connected device to measure your skin temperature. once the app starts, allow the app to receive data from the body sensors. afterwards, the screen shows the application. tap the measure button to get your skin temperature. to stop measuring, tap on the stop button. you're done! congratulations! you have successfully achieved the goal of this code lab. now, you can create a health app that measures skin temperature by yourself! if you face any trouble, you may download this file: skin temperature tracking complete project (123.09 kb) to learn more about samsung health, visit: developer.samsung.com/health

      https://developer.samsung.com/codelab/health/skin-temperature.html
      1. success story | marketplace, design, galaxy watch

      blog

      Best of Galaxy Store Awards 2019 Winner: Matteo Dini on Building a Successful Brand

      we continue to celebrate the top performing apps in creativity, quality, design, and innovation, as we interview winners of our best of galaxy store awards. next in our blog series, we feature matteo dini. matteo dini, founder and ceo of "matteo dini md", shares with us how he manages to maintain a high level of quality and craftsmanship with his watch face designs, many of which boast five star ratings, the importance of developing a recognizable brand, and how the galaxy store badge has played an integral role in his marketing strategy how did you first get into designing watch faces? at the end of 2016, i bought a samsung gear s3 watch, and that’s when i started designing watch faces. at first, it was just for fun, something i did to explore the easily approachable software “galaxy watch designer” (now “galaxy watch studio"). in the spring of 2017, i started publishing some of my watch faces on the galaxy store, and i realized that people were really interested in them, therefore i decided to continue publishing my designs. as one of our more seasoned and successful designers, can you share some key features of a good watch face design? in my opinion, a good watch face design has to be easily readable. it should also feature well thought out colors and shades that match together, and the layouts shouldn’t be too complex. this is the key to attracting a wider range of customers. with your broad experience as a watch face designer, do you still experience technical or design hurdles when designing a watch face? there really is no limit to improvement when it comes to graphic design. the real obstacle to overcome is the lack of new ideas. there should always be new inspirations about how to improve the design aspect of the watch faces. there have been, and still are moments, when i find myself stuck, even for several whole days, before getting to a final result. after creating several watch faces and crossing paths with so many great creations from other designers, pushing the creative limit further can be really hard, especially on a 360x360 screen. however, when i finally find the right path that can lead me to a new good project, i feel so enthusiastic and passionate about my job that it is definitely worth it. where the technical side is concerned, hopefully i’ll be able to add some new features that leverage samsung’s hardware-and-software evolutions. your brand “matteo dini md” is well known in the watch face community. how important is creating your own brand? having a well-recognizable brand is the key to being well known. your brand identifies your work, that is undeniable. finding the perfect name for my brand was not the easiest choice to make. when i started publishing my work on the galaxy store i was really indecisive about leaving my real name-surname. i even thought of inventing a new name from scratch, but then i decided to go for matteo dini, since it gave me the impression of a more personal brand, and i think it worked, or at least i hope so. my brand “matteo dini md” is a legally registered brand in the us and in europe. how do you come up with new designs to support the continued growth and evolution of your brand? ideas can come from seasons, from highly- or poorly-inspired periods, and obviously from market research. “there are no rules” is the only rule. sometimes a design can sprout from a tiny detail that we come to notice in a random object, not necessarily a watch. in a certain way it’s kind of a meditation process - it’s mind work. at the moment, there are two of us designing watch faces for “matteo dini md”, my brother-in-law luca canaletti and i. together we try to imagine how the product could potentially look, and we then sketch some drafts on paper or directly on the software. your designs are highly rated on the galaxy store which speaks to the quality and craftsmanship of your work. how do you achieve such great quality with your designs? to be honest, when it comes to my work i’m a very strict critic. i always detect some enormous flaws, and i hardly find myself truly and completely satisfied with my work. apart from that, the thing luca and i focus on is quality. to achieve that, we try to include as many details as possible and to test our watch faces for several days, in different light and weather conditions, in order to get a good result. but, as i was saying before, there is no limit to improvement, and we learn something new every day. it’s evident that you understand the market and what users want. how much does user feedback factor into the designs you create? are there other factors? i pay so much attention to user feedback. i obviously cannot design something that works for each of them, however i tend to use their suggestions to improve my watch faces and to meet their needs and tastes. being on the galaxy store has provided me with knowledge about people’s taste, and i’m constantly trying to keep several watch faces on the store that can satisfy a wide range of consumers, both young people and adults. i also keep an eye on market trends and all the cutting-edge news that comes out. you employ various marketing strategies, including third-party watch face reviews from jibberjab, social media promotion, free trials, contests, and giveaways. how important is marketing your designs to becoming a successful seller? what tips can you share? the galaxy store is introducing more and more new content every day, so it is really fundamental to promote one’s projects on other marketing channels as well. this is why i employ all those things you mentioned, in order to drive awareness and visibility of my brand on the galaxy store. the paramount thing to do is to create a well-recognizable brand identity, in order to be easily found on the store. i created my brand’s accounts on all the most important social media platforms in order to gain followers and to have a community to directly communicate with. this is fundamental, it’s the starting point for any marketing strategy. how does the galaxy store badge support your marketing strategy? galaxy store badge is, without a doubt, an excellent tool. it generates customized short urls, it can monitor all the clicks you get (which is important for statistics and promotions), and it also gives you the opportunity to use an official samsung official logo, which can be really helpful when it comes to marketing strategies. how has the samsung developer program supported your journey and growth as a watch face designer? the sdp team has always been very helpful and professional, promptly answering my request for technical assistance and solving my problems. they always keep us up-to-date about samsung news and share detailed studies about technical topics. they really support our work. it is also important to follow the dedicated forum. the forum allows us to ask questions and get answers from samsung and the developer community, i was very pleased to meet the team in person, twice actually, at the 2018 and 2019 editions of the samsung developer conference. thank you for the question; since you mentioned it, i really want to publicly thank the sdp team for their amazing work. as the winner of samsung best of galaxy store awards 2019 for “best watch designer (big brand)”, what advice do you have for new designers looking to create a successful watch face business? besides being a watch face designer, i’m a technology enthusiast and my first step was studying the product (samsung gear watch / galaxy watch / galaxy watch active), wearing it 24/7 for several months. i got the full user experience, before becoming a designer. passion and patience are fundamental, new designers shouldn’t get discouraged if the big results don’t come right away. they should keep focusing on finding their style and on trying to improve it day after day. the results will come eventually. what is next for matteo dini md watch faces? at the moment we are focusing on watch face development and we are trying to improve ourselves in order to be ready when samsung shares its plans on any new products or product updates. we want to thank matteo for sharing compelling insights on watch face design and tips on becoming a successful designer with a recognizable brand. be sure to check out matteo dini md’s watch face portfolio, and download your favorite in the galaxy store. we recommend this one. follow us on twitter at @samsung_dev for more developer interviews as well as tips for building games, apps, and more for the galaxy store. find out more about our best of galaxy store awards. designing a watch face for galaxy watch running wear os powered by samsung? check out this code lab about creating a watch face using tag expressions in watch face studio.

      https://developer.samsung.com/sdp/blog/en-us/2020/05/26/best-of-galaxy-store-awards-2019-winner-matteo-dini-on-building-a-successful-brand
      1. tutorials | galaxy watch, marketplace

      blog

      Install Watch Faces for Galaxy Watch5 and One UI Watch 4.5

      with the release of one ui watch version 4.5, there are new steps for installing galaxy watch4 and galaxy watch5 watch faces that are different from the previous post on this topic. new and previously purchased watch faces from google play store will not automatically become the active watch face on your watch. in some cases, you must first download watch faces to your play store account before transferring them to your watch. the steps below explain how to install watch faces using your watch, phone, or computer browser. your devices should be logged into the same google account and on the same wifi to ensure they are correctly connected. new watch faces purchase and install using your watch purchase and install using your phone purchase and install using your computer browser previously purchased watch faces install previous purchase using your watch install previous purchase using your phone install previous purchase using your computer browser troubleshooting getting help new watch faces purchase and install using your watch 1. swipe up on your watch to view your watch apps and tap the play store app. 2. use the search function to find watch faces based on keywords, or scroll down and tap the watch faces banner to view featured watch faces. 3. tap on the chosen watch face. 4. tap on the price button. 5. a notification to complete your purchase on your phone will appear on your watch. if this device appears in the list, the developer offers a companion app for your phone for this watch face. companion apps are not required for watch faces to function correctly on your watch. 6. on your phone, go to the play store. a. tap on your profile icon b. tap on notifications & offers c. tap on continue your purchase to complete the transaction your new watch face will download to your play store account. even though the payment successful notification states that your new watch face is now available on your watch, it still must be transferred to your watch. 7. tap on available on more devices and tap the install button for your watch model. 8. once your watch face downloads to your watch, click on the current watch face, swipe left, and select add watch face. continue swiping left until you see your newly downloaded watch face. finally, tap the watch face to make it your active watch face. purchase and install using your phone 1. open the galaxy wearable app and tap either the watch faces button or the store button to launch the play store. if you tap watch faces, you need to scroll to the bottom and select get more watch faces to launch the play store. 2. if you arrive at the play store home screen, you must navigate to the watch face page. tap either the featured watch faces banner or scroll to the bottom and tap watch faces to open the watch face page. alternatively, you can open the play store on your phone but must tap the categories tab near the top and select the watch faces category. 3. navigate through the many options of watch faces within different categories, or use the search function to search using a keyword. 4. select a watch face and tap the dropdown arrow button in the green price bar. if the dropdown doesn't appear, confirm that your phone and watch are connected, then close and re-open the play store app on your phone. you may also need to turn off the wifi on your watch and then turn wifi back on. 5. tap on the checkmark box for your watch to select it, then tap on the green bar app price. 6. add payment information if needed or redeem a coupon code by tapping on the current payment choice, scrolling down, and selecting redeem code. 7. tap on the 1-tap buy green bar button to complete your purchase. your watch face downloads to your phone and then installs on your watch. downloading may take several minutes, and the status may not change from install pending. 8. you can check the progress of your download by tapping the download icon at the bottom of your current watch face. some purchases may take several hours to sync with your watch. if you have initiated your purchase using your phone, do not attempt to purchase again using your watch. 9. once your watch face has downloaded to your watch, make the watch face your active watch face by going to the galaxy wearable app on your phone and select watch faces. 10. scroll down to the downloaded category and tap on your recently downloaded watch face to add it to your favorites category. 11. your watch face will now be the active watch face on your watch. purchase and install using your computer browser 1. go to https://play.google.com/store/apps and ensure you signed in to your google account associated with your phone. 2. click on the watch category button near the top of the page. 3. click on the featured watch faces banner. 4. navigate through the many options of watch faces within different categories or use the search function to search a keyword. 5. once you have chosen a watch face, click the green buy button and complete your purchase. 6. to transfer your watch face to your watch, select your watch model from the choose a device dropdown and then click install. installing may take several minutes to complete. 7. after your watch face downloads to your watch, click on the current watch face, swipe left, and select add watch face. continue swiping left until you see your newly downloaded watch face. finally, tap the watch face to make it your active watch face. install a previously purchased watch face if you would like to install a watch face that you had previously purchased from the play store, there are different ways you can do this using your watch, your phone, or your computer. install previous purchase using your watch 1. swipe up on the current watch face to access the watch apps and select the play store app. you can also press and hold on to the current watch face, swipe left to the end of the list and select add watch face. continue swiping left until the end and select more watch faces. the play store app will launch. 2. tap the search icon and talk, draw, or type the name of the watch face. 3. select the watch face and tap install. 4. once your watch face downloads to your watch, click on the current watch face, swipe left, and select add watch face. continue swiping left until you see your newly downloaded watch face. finally, tap the watch face to make it your active watch face. install previous purchase using your phone 1. to install a previously purchased watch face using your phone, open the galaxy wearable app and tap either the watch faces button or the store button to launch the play store. if you tap watch faces, you need to scroll to the bottom and select get more watch faces to launch the play store. alternatively, you can directly open the play store by tapping the app icon on your phone. 2. once the play store app has opened, you can view all previously downloaded watch faces by tapping your google account profile icon and selecting manage apps & device. 3. tap on the manage tab and scroll to find the apps for the watch faces you have installed on your phone. 4. select the green installed button and change it to not installed to view apps previously downloaded but not currently installed on your phone. you can also tap the search icon and type the name of your previously purchased watch face. 5. tap on the watch face app from the results list you would like to install on your watch. 6. tap the small downward triangle to open the install options. place a checkmark next to your watch model and click the install button. 7. once your watch face downloads to your watch, click on the current watch face, swipe left, and select add watch face. continue swiping left until you see your newly downloaded watch face. finally, tap the watch face to make it your active watch face. install previous purchase using your computer browser 1. go to https://play.google.com/store/apps and sign in to your google account associated with your phone. 2. click on your profile icon and select library & devices. 3. scroll through the list of previously downloaded apps and select one of your watch faces. if needed, click show more to view your full list of apps. 4. click on the green install on more devices button. 5. in the drop-down menu, click on the device list and select your galaxy watch. 6. click the green install button to install the watch face to your galaxy watch. enter your google account password if asked. 7. your watch face will begin to download to your watch. 8. once your watch face downloads to your watch, click on the current watch face, swipe left, and select add watch face. continue swiping left until you see your newly downloaded watch face. finally, tap the watch face to make it your active watch face. troubleshooting when downloading a watch face to your watch, if your watch device is not showing in the install on more devices list, you will need to use a computer browser to re-install the watch face. 1. log into your play store account and use the search function to find your watch face. 2. click on install on more devices. 3. select your watch model and click install. 4. your watch face will begin to download to your watch. 5. once your watch face downloads to your watch, click on the current watch face, swipe left, and select add watch face. continue swiping left until you see your newly downloaded watch face. finally, tap the watch face to make it your active watch face. getting help for questions about using your watch, open the samsung members app on your phone to visit the community forum. then, view the galaxy watch forum in the wearables category to read discussions and post your questions. to participate in the broader wear os discussion, visit the wear os by google help community page. grow your watch face collection as you can see, there are many ways that you can purchase and install watch faces in google play store onto your galaxy watch. personalization is a key feature of your galaxy watch, and we know you will continue to enjoy customizing the look of your watch style as you grow your collection of watch faces. visit the play store to find your next favorite wear os powered by samsung watch face. to view the watch faces featured in this blog, search the play store for the designer monkey's dream. resources for sellers at samsung galaxy store for more information on signing up and selling on galaxy store, look into the galaxy store documentation. for assistance with setting up and starting your sales campaigns, the galaxy store discussion forums are where you can get great insights from the galaxy store support team and other sellers. join us on twitter, facebook, linkedin, and youtube to continue the discussion.

      Tony Morelan

      https://developer.samsung.com/sdp/blog/en-us/2022/11/15/install-watch-faces-for-galaxy-watch5-and-one-ui-watch-45
      1. Learn
      2. Code Lab

      codelab

      Measure Blood Oxygen Level on Galaxy Watch

      measure blood oxygen level on galaxy watch objective create a health app for galaxy watch, operating on wear os powered by samsung, utilizing samsung privileged health sdk to trigger and obtain blood oxygen level (spo2) measurement results. partnership request in this code lab, you will use a specially prepared mock library. it has limited functionality and uses dummy data instead of real-time data. to get real values, you will need the full version of the samsung privileged health sdk library, which is available to registered samsung partners. apply as a partner by checking out the partner app program to get exclusive access to the samsung privileged health sdk. overview samsung privileged health sdk provides means of accessing and tracking health information contained in the health data storage. its tracking service gives raw and processed sensor data such as accelerometer and body composition data sent by the samsung bioactive sensor. the latest bioactive sensor of galaxy watch runs powerful health sensors such as photoplethysmogram (ppg), electrocardiogram (ecg), bioelectrical impedance analysis (bia), sweat loss, and spo2. see samsung privileged health sdk descriptions for detailed information. set up your environment you will need the following: galaxy watch4 or newer android studio (latest version recommended) java se development kit (jdk) 11 or later sample code here is a sample code for you to start coding in this code lab. download it and start your learning experience! measuring blood oxygen level sample code (122.49 kb) connect your galaxy watch to wi-fi go to settings > connection > wi-fi and make sure that wi-fi is enabled. from the list of available wi-fi networks, choose and connect to the same one as your pc. turn on developer mode and adjust its settings on your watch, go to settings > about watch > software and tap on software version 5 times. upon successful activation of developer mode, a toast message will display as on the image below. afterwards, developer options will be visible under settings. tap developer options and enable the following options: adb debugging in developer options find wireless debugging turn on wireless debugging check always allow on this network and tap allow go back to developer options and click turn off automatic wi-fi notethere may be differences in settings depending on your one ui version. connect your galaxy watch to android studio go to settings > developer options > wireless debugging and choose pair new device. take note of the wi-fi pairing code, ip address & port. in android studio, go to terminal and type: adb pair <ip address>:<port> <wi-fi pairing code> when prompted, tap always allow from this computer to allow debugging. after successfully pairing, type: adb connect <ip address of your watch>:<port> upon successful connection, you will see the following message in android studio’s terminal: connected to <ip address of your watch> now, you can run the app directly on your watch. turn on developer mode for health platform this step is only applicable to registered partners of samsung privileged health sdk. you can replace priv-health-tracking-mock-2023.aar in app/libs with the real library to receive real sensor data with the application. this requires health platform to be set in developer mode: on your watch go to settings > apps > health platform. quickly tap health platform title for 10 times. this enables developer mode and displays [dev mode] below the title. to stop using developer mode, quickly tap health platform title for 10 times to disable it. start your project after downloading the sample code containing the project files, in android studio click open to open existing project. locate the downloaded android project from the directory and click ok. check capabilities for the device to track data with the samsung privileged health sdk, it must support a given tracker type – blood oxygen level. to check this, get the list of available tracker types and verify that the tracker is on the list. in the connectionmanager.java file, navigate to the isspo2available() function, use a provided healthtrackingservice object to create a healthtrackercapability instance, send it to the checkavailabletrackers function, and assign its result to the availabletrackers list. gettrackingcapability() returns a healthtrackercapability instance in the healthtrackingservice object healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype. public healthtrackercapability gettrackingcapability() provide a healthtrackercapability instance to get a supporting health tracker type list. /****************************************************************************************** * [practice 1] check capabilities to confirm spo2 availability * * ---------------------------------------------------------------------------------------- * * (hint) replace todo 1 with java code * get healthtrackercapability object from healthtrackingservice * send the object to checkavailabletrackers() ******************************************************************************************/ public boolean isspo2available(healthtrackingservice healthtrackingservice) { if (healthtrackingservice == null) return false; list<healthtrackertype> availabletrackers = null; //"todo 1" if (availabletrackers == null) return false; else return availabletrackers.contains(healthtrackertype.spo2); } check connection error resolution using samsung privileged health sdk api, resolve any error when connecting to health tracking service. in the connectionmanager.java file, navigate to the processtrackerexception() function, and check if the provided healthtrackerexception object has a resolution. assign the result to hasresolution variable. hasresolution() function in the healthtrackerexception object checks if the api can fix the error healthtrackerexceptionhealthtrackerexception contains error codes and checks the error's resolution. if there is a resolution, solving the error is available by calling resolve(activity). boolean hasresolution() checks whether the given error has a resolution. /******************************************************************************************* * [practice 2] resolve healthtrackerexception error * * ----------------------------------------------------------------------------------------- * * (hint) replace todo 2 with java code * call hasresolution() on healthtrackerexception object ******************************************************************************************/ public void processtrackerexception(healthtrackerexception e) { boolean hasresolution = false; //"todo 2" if (hasresolution) e.resolve(callingactivity); if (e.geterrorcode() == healthtrackerexception.old_platform_version || e.geterrorcode() == healthtrackerexception.package_not_installed) observerupdater.getobserverupdater().notifyconnectionobservers(r.string.novalidhealthplatform); else observerupdater.getobserverupdater().notifyconnectionobservers(r.string.connectionerror); log.e(tag, "could not connect to health tracking service: " + e.getmessage()); } initialize spo2 tracker before the measurement starts, initialize the spo2 tracker by obtaining the proper health tracker object. in the spo2listener.java file, navigate to the init() function. using the provided healthtrackingservice object, create an instance of the spo2 tracker and assign it to the spo2tracker object. gethealthtracker() with healthtrackertype.spo2 as an argument will create a healthtracker instance healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype. healthtracker gethealthtracker(healthtrackertype healthtrackertype) provides a healthtracker instance for the given healthtrackertype. /******************************************************************************************* * [practice 3] initialize spo2 tracker * * ---------------------------------------------------------------------------------------- * * (hint) replace todo 3 with java code * initialize spo2tracker with proper samsung privileged health sdk functionality * call gethealthtracker() on healthtrackingservice object * use healthtrackertype.spo2 as an argument ******************************************************************************************/ void init(healthtrackingservice healthtrackingservice) { //"todo 3" } perform measurement for the client app to start obtaining the data through the sdk, it has to set a listener method on the healthtracker. the application setups the listener when the user taps on the measure button. each time there is new data, the listener callback receives it. after the measurement is completed, the listener has to be disconnected. due to battery drain, on-demand measurement should not last more than 30 seconds. the measurement is cancelled if the final value is not delivered in time. note that the sensor needs a few seconds to warm up and provide correct values, which adds to the overall measurement time. the blood oxygen level values come in the ondatareceived callback of trackereventlistener. in spo2listener.java file, you can see the code for reading the value: private final healthtracker.trackereventlistener spo2listener = new healthtracker.trackereventlistener() { @override public void ondatareceived(@nonnull list<datapoint> list) { for (datapoint data : list) { updatespo2(data); } } }; private void updatespo2(datapoint data) { int status = data.getvalue(valuekey.spo2set.status); int spo2value = 0; if (status == measurement_completed) spo2value = data.getvalue(valuekey.spo2set.spo2); observerupdater.getobserverupdater().notifytrackerobservers(status, spo2value); } run unit tests for your convenience, you can find an additional unit tests package. this lets you verify your code changes even without using a physical watch. see instructions below on how to run unit tests: right click on com.samsung.health.spo2tracking (test) and execute run 'tests in 'com.samsung.health.spo2tracking'' command. if you completed all the tasks correctly, you can see that all the unit tests passed successfully. run the app after building the apk, you can run the application on a connected device to measure blood oxygen level. right after the app is started, it requests for user permission. allow the app to receive data from the body sensors. afterwards, it shows the application's main screen. to get the blood oxygen level, tap on the measure button. to stop the measurement, tap on the stop button. you're done! congratulations! you have successfully achieved the goal of this code lab. now, you can create a health app that measures blood oxygen level by yourself! if you're having trouble, you may download this file: measuring blood oxygen level complete code (117.81 kb) to learn more about samsung health, visit: developer.samsung.com/health

      https://developer.samsung.com/codelab/health/blood-oxygen.html
      1. Connect
      2. Samsung Developer Conference

      web

      SDC22 | Tech Sessions

      tech sessions dive into the future of connected customer experiences through tech sessions by developers offering further insight into the innovations introduced in the keynote filter filter filter all reset apply there are no results. sessions contents & service, open innovation 8k visual quality and ecosystem in this session, we will present how the genuine 8k contents correctly displayed on 8k display devices could deliver our customers an immersive picture quality experience. we will start with a summary of the previous studies about user perceptions regarding the 8k visual quality. we then will explain why the full-frequency 8k contents are superior to the lower resolution in producing fine details on the image. we will also discuss some technical challenges we face toward adopting and utilizing 8k contents in a real-world environment and describe how we can overcome these hurdles. specifically, we will discuss technologies such as super-resolution and new image sensors to overcome the full-frequency barrier of 8k content. last, we will introduce the 8k association (8ka), a non-profit organization composed of key technology companies in the consumer and professional 8k ecosystem, and briefly mention 8ka's ongoing effects on the research, standardization, and promotion of 8k visual quality. sessions contents & service, developer program, mobile add samsung pay as your payment method in this session, we will share learnings from our experience developing the samsung pay mobile payment service, revealing insights that can be applied to your own platforms. we will also take a look at the samsung pay development kit and how you can use this for your own service. sessions game, ar, mobile ar emoji: your avatar, your experience the ar emoji feature on samsung devices enables users to create a 3d avatar model that can be used in other applications. similar to avatars currently available in games or in the metaverse, our ar emojis are a chance for users to express themselves, their style and their personality, digitally. but this is only the beginning. in this session, we’ll explore the future of ar emojis and how the ar emoji sdk is opening more opportunities for developers to collaborate with samsung to bring to life new services featuring these avatars and optimize them for the metaverse though our collaboration with unity. sessions ai, iot, smart appliances bixby 2022 what’s new what’s new with bixby in 2022? in this session, you will hear about some of the exciting improvements to the nlu and on-device bixby as well as updates to the bixby developer studio, which introduces a brand new javascript runtime that provides a modern, secure, high-performance environment. we will also take a closer look at the brand new bixby home studio, which allows smart device developers to customize and optimize voice control of smart devices, including allowing a single command to intelligently control multiple smart home devices. sessions contents & service, game creating spectacular galaxy game audio experiences with dolby atmos galaxy smartphones and tablets can produce spectacular game audio with dolby atmos. discover how you can create deeper emotional connections with players, keep them playing for longer, and earn their loyalty by unleashing the full power of samsung galaxy mobile game audio. in this session you will hear from dolby’s partner audiokinetic who will discuss how developers can make dolby atmos games, including a walkthrough of how to use dolby atmos plug-ins in audiokinetic's wwise audio middleware. moong labs – creators of epic cricket one, of india's most popular sports games – will also share how dolby atmos benefitted their game and you will find out how dolby supports game developers and other activities on our website. sessions health, wearable expand health experiences with galaxy watch the galaxy watch’s powerful bioactive sensor, together with the wear os powered by samsung, is transforming mobile health experiences. and now, this technology is even more powerful thanks to the samsung privileged health sdk. find out how the samsung privileged health sdk is allowing developers to retrieve raw or analyzed sensor data for their applications, including bia, ecg, blood oxygen level or sweat loss, and help users’ to accurately monitor their health stats. sessions web flexible and private web experience on samsung internet in this session, you will learn how to enhance and optimize your web experience for foldable devices using device posture api and viewport segment media query. we'll also take a closer look at how samsung internet protects users’ privacy online. sessions mobile, enterprise, developer program google and samsung strengthen enterprise ecosystem together samsung’s global mobile b2b team is working closely with the android enterprise team to build a galaxy ecosystem of partners who are bringing innovation into workplaces. discover how partner solutions create unique experiences on samsung devices and how we plan to work together to help future partners step into the samsung android ecosystem for enterprises and smbs. sessions contents & service, developer program, enterprise hdr10+/salt and automatic hdr video creations for productions hdr10+ is an essential technology for premium hdr viewing experience and it is widely reach to consumer displays including mobile devices. in order to provide hdr content services, it requires changing service provider's infra structure or workflows and video processing technology from sdr to hdr with a lot of engineering efforts. then, hdr10+/salt solutions and partnership program from samsung is designed to build an extremely cost effective automatic solution up for content creators, post production houses and ott service providers even including game developers. the solution package is designed with various standalone applications, reference apps, sdks on various oses and partnership programs to help 3rd parties for creation of hdr contents. hdr10+/salt partnership program provides full compatibility to hdr10+ llc certification program and major studios, ott service providers and tool makers are already partners of the program and samsung provides them the best hdr content quality. sessions developer program, open innovation, health healthcare research hub our open source project provides end-to-end solutions such as sdk, platform, and portal for various use cases from medical research studies to clinician services using wearable devices. medical research does not have to stay complicated. anyone can easily build and customize their own research studies or clinician services using this open source. recently, as the accuracy of sensors installed on wearable devices has improved, interest in healthcare research using wearable health data is increasing. however, it takes a lot of time for researchers to develop research applications and server infrastructure for storing and analyzing data from scratch. sr is developing android sdk and data platform solutions that support healthcare research using health data from our wearable devices (watch 4 and later versions) and provide them as open source in order to solve the pain points of these researchers and establish a digital health care research ecosystem centered on our wearable devices. sessions iot, monetization, smart appliances home connectivity alliance introduction of home connectivity alliance and how appliance manufactures can enable interoperability across brands. hear how hca interoperability can benefit consumers and partners including b2b (home builders, mfu, etc). join the hca and become a leader in innovation within the connected iot ecosystem. sessions ai, ar immersive audio we will demonstrate an audio system with dramatically improved immersive 3d audio experience. hardware will be similar to samsung’s critically acclaimed hw-q990b soundbar, but will include several new technologies that will be found in future samsung products. these technologies automatically correct for room acoustics and the location of the listeners and loudspeakers. visitors will compare the sound of the system before and after the system’s unique automated calibration process. listeners will enjoy improved spatial and timbral performance in stereo, surround and immersive audio formats with both music and cinematic content. sessions security & privacy introducing blockchain wallet with knox vault in this session, we introduce blockchain wallet for samsung smart tv. blockchain wallet allows our smart tv users to manage their blockchain accounts and transfer their cryptocurrency to another blockchain account. it ensures to retain a key for blockchain transactions in a secure way. dapp developers can build their tv dapp with blockchain wallet for blockchain functions such as blockchain connection and transaction signing. knox vault is an enhanced hardware-based security solution to protect sensitive data such as cryptographic keys, passwords and personal data. knox vault provides strong security guarantees against hardware attacks such as physical attack, side-channel attack and fault attack. as a core component of the knox security platform, knox vault is an isolated, tamper-proof, secure subsystem with its own secure processor and memory. sessions developer program, enterprise, android introducing samsung galaxy camera ecosystem discover how advanced camera technologies, based on samsung’s leading hardware and software, can enable developers to create more powerful camera experiences for their users. we will take a look at some of the incredible partnerships samsung has already formed with numerous app developers and reveal how these collaborations enriched users’ camera experiences. sessions mobile, android, productivity intuitive multitasking experience based upon android 12l join us to see how samsung continues to enhance the large screen user experience further with fast app switching and intuitive multitasking capabilities. to maximize the galaxy foldable experience, we're expanding flex mode even further with more apps and partners as well as google's ongoing collaborative effort in android 12l. sessions iot, mobile, uwb joint efforts on standardization toward open ecosystem of uwb services the presentation will introduce samsung's joint efforts with industry partners on the uwb tech/service standardization, which is essential for creating an interoperable open ecosystem of uwb products and services. especially, it will introduce activities at fira consortium, which was established by samsung jointly with industry leaders to provide interoperability specifications as well as certification programs. it may also include target uwb services and relevant standardization status & plan. sessions ar, game, tizen journey to immersive interactive exp in big screen with xr and avatar fw xr framework webapis enable developers to build xr applications on the tizen platform. we will go over features of the webapis, share some demos, and provide information on how to get started. additionally we will show you a sample code of how to capture and handle user's gestures and full body movement. avatar framework for tizen is a unified solution providing high level apis that allow samsung developers to easily include the 3d avatar models and features in their samsung tv applications. we will go over all the cool features and options of our framework in this video. sessions connectivity, android, mobile le audio: the future of wireless sound introducing le audio: a new standard for bluetooth technology on galaxy devices. le audio will enhance the performance of classic bluetooth audio and introduce isochronous communication, creating whole new wireless audio experience on galaxy devices. in this session, we will introduce the technical features of le audio, what it means for the galaxy ux and how you could enhance wireless audio experience of your app with le audio. sessions design, ui/ux one ui design principles in partnership one ui creates a unified experience across our galaxy devices, from phones and tablets to watches and galaxy books. in creating and refining one ui, we've followed four key principles: simplicity, effortlessness, consistency, and authenticity. with one ui, we've also made a commitment to openness, which means some of the best things in one ui come from partnerships. in this session, we'll talk about some of those partnerships and how we aligned them with our four design principles to get great results. sessions ui/ux, design, android one ui: customer centric design one ui starts with a true understanding what our customers want. hear more about what samsung have learned from listening to extensive customer feedback and usage data, and how we have adapted our designs in response. we'll take a look at some real-life examples of how the ux design of the calendar, settings and samsung health app has evolved over time to better meet customer needs. sessions enterprise, data, security & privacy our journey to responsibly handling data at samsung, we place personal data protection as one of our top priorities. learn how we responsibly handle personal data in our applications and platforms. we'll share with you our journey in protecting personal data. we'll talk about what it means to responsibly govern and access data in samsung's enterprise environment. we'll cover specifics on how to classify & protect data as a whole. pick up insights on privacy technologies and design patterns we apply in our data intensive applications today. sessions developer program, tizen, ui/ux prism: the new ux development tool and process in today’s environment of rapid and unpredictable transformation, establishing a creative and increasingly collaborative tech culture is one of the most challenging requirements. in this session, we would like to introduce a new method to revolutionize the tizen platform-based app development process. a new development process named prism automates most of the inefficient overheads from design to implementation of app ui, innovatively improving app development productivity. we will introduce prism-based development process and deliver this innovative app development culture to developers through the sessions. sessions developer program, smart appliances, tizen remote test lab: what’s new in tv development environment the current tizen tv development environment, represented by emulator and tv, is a very limited support method for developers. depending on the version of emulator, the latest features currently supported by the tv may not be available, and various models of physical tvs may be required to verify actual operation. rtl tv tries to overcome the limitations of the current development environment. sessions contents & service, monetization, data samsung tv plus: the advanced ad-tech and partnerships that fund free tv samsung’s free ad-supported tv (fast) service “tv plus” has been a breakout success. although it looks and feels like traditional tv, it is anything but! behind the scenes of this slick tv & mobile experience is high-performance technology, vast amounts of data & algorithms, and a thriving partner ecosystem. join this session to learn more about the mind-boggling world of advertising technology, how it works, and how multiple companies come together to provide free tv to millions of consumers worldwide. sessions android, contents & service samsung wallet, it's convenient, personal and safe as the growth of digital wallets skyrockets, samsung recently announced samsung wallet – a new platform bringing almost all of the cards you’d typically find in a physical wallet, as well as important documents, into one easy-to-use and secure mobile application. as samsung wallet rapidly expands its content set, find out more about the future of digital wallets and how open api’s can allow developers to build integrations for this service. sessions iot, security & privacy smartthings edge: the next level experience discover how samsung is transitioning the smartthings-published groovy dths to edge drivers while maintaining a seamless experience for our users. we’ll walk through the process of onboarding edge-based devices and how to set up an automation with an edge device that runs locally. sessions iot, monetization, smart appliances smartthings energy service introduction of smartthings energy service and how partners (energy companies, smart device mfgs, etc) can integrate to provide a seamless energy management service for their consumers leveraging samsung's smartthings energy ecosystem. sessions iot, contents & service, open innovation smartthings find: find alongside 200+ million users smartthings find is samsung’s fastest growing service, powered by more than 200 million galaxy users. discover some of the new features and functions added over the past year and learn how partners can leverage the service to innovate their own solutions to meet the needs of businesses and consumers alike. sessions iot, contents & service, open innovation smartthings platform enhancements for openness and interoperability the smartthings platform continues to evolve to promote openness and interoperability. in this session, we will share some exciting new updates to the smartthings platform to support matter and thread, and discuss the home connectivity alliance. sessions health, tizen telehealth in samsung devices samsung display device (smart tvs & smart monitors) users will be able to launch telemedicine service within the samsung products. once you pick your physician, you can use one of the approved usb cameras to connect to the tv and jump on a video call with a physician via external service provider's built-in web applications. after a few account setup process on mobile / pc, you can easily start your session any time on tv without any additional complicated inputs. at your session, you can also receive a prescription to be filled in at a mail-in online pharmacy (pc or mobile) to receive prescription drugs at your doorstep. sessions open innovation, enterprise, productivity the next generation samsung retail solutions in a mobile-first world, device convergence, simplification, ergonomically designed accessories, sw solutions and the connected galaxy ecosystem are helping to boost productivity and efficiency in the retail industry. in this session, we will explore how the next generation of retail solutions are shaping the industry’s future and will take a closer look at samsung’s three major retail solutions - data capturing, payment, and push-to-talk. sessions developer program, mobile, android the samsung knox partner program: partner success journey the samsung knox partner program (kpp) equips you with everything you need to build ideas and market your mobile solutions. in this session, we will take a look at some of our partners’ solutions and how collaborating with the samsung kpp has helped enhance their user experience. join us to see why kpp is causing a stir in the business developer community! sessions enterprise, tizen tizen everywhere this session highlighted samsung's direction and goals for the enterprise and b2b markets, focused on taking tizen to the next level on so many platforms. various enterpriser displays based on tizen and solutions suitable for business purposes will always be together. tizen enterprise platform will provide all the technology infrastructure you need, including the samsung developers portal for b2b for developer support and the samsung apps tv seller office for custom application support in your own business. after announcing "tizen open" at sdc in 2019, samsung established licensing system to provide tizen tv os to other tv makers. in order for partners to develop tizen tv products faster, samsung prepared reference tv solution. in europe, australia, türkiye, tizen tvs have been released sequentially through more than 10 tv brands since september 22. sessions wearable, design, android watch face studio's first journey and expectation for next a must-have to create beautiful watch faces! watch face studio (wfs) is now a little over a year old. hear the developers of wsh share the highs and lows of bringing the tool to life and meet the designers responsible for creating the eco watch face. this session is an insight into the year-long journey to create wfs – and the story of where we’re going next. sessions iot, tizen, ui/ux what's new in tizen? are you curious about the direction in which intelligent iot platform “tizen” is developing? this session introduces ui assistant technology and extended 3d ui framework for providing advanced user experience, and explains innovative technologies that make run the tizen platform on top of the android hardware abstraction layer to facilitate securing new hws. and introduce the iot standard 'matter', which will be newly supported on tizen. finally, we provide a guide and tip for cross platform application development. sessions ai, iot, smart appliances what’s new in bixby for smart home bixby brings the smart home experience to life with the power of voice. find out how our new tool, bixby home studio, will enable device manufacturers to build more intelligent, more engaging voice experiences for smartthings-connected devices. sessions mobile, design, ui/ux what’s new in one ui 5 one ui 5 pushes personalization and productivity to the next level. explore new features that enable you to build a galaxy experience that reflects your personal style and help you to get more done on all your devices, wherever or whenever you need to.

      https://developer.samsung.com/conference/sdc22/sessions
      1. Learn
      2. Code Lab

      codelab

      Measure Blood Oxygen Level and Heart Rate on Galaxy Watch

      measure blood oxygen level and heart rate on galaxy watch objective create a health app for galaxy watch, operating on wear os powered by samsung, utilizing samsung privileged health sdk to trigger and obtain results of simultaneous blood oxygen level (spo2) and heart rate measurements. partnership request in this code lab, you will use a specially prepared mock library. it has limited functionality and uses dummy data instead of real-time data. to get real values, you will need the full version of the samsung privileged health sdk library, which is available to samsung partners. apply as a partner by checking out the partner app program to get exclusive access to the samsung privileged health sdk. overview samsung privileged health sdk provides means of accessing and tracking health information contained in the health data storage. its tracking service gives raw and processed sensor data such as accelerometer and body composition data sent by the samsung bioactive sensor. the latest bioactive sensor of galaxy watch runs powerful health sensors such as photoplethysmogram (ppg), electrocardiogram (ecg), bioelectrical impedance analysis (bia), sweat loss, and spo2. see samsung privileged health sdk descriptions for detailed information. set up your environment you will need the following: galaxy watch4 or newer android studio (latest version recommended) java se development kit (jdk) 11 or later sample code here is a sample code for you to start coding in this code lab. download it and start your learning experience! measuring blood oxygen level and heart rate sample code (135.23 kb) connect your galaxy watch to wi-fi go to settings > connection > wi-fi and make sure that wi-fi is enabled. from the list of available wi-fi networks, choose and connect to the same one as your pc. turn on developer mode and adjust its settings on your watch, go to settings > about watch > software and tap on software version 5 times. upon successful activation of developer mode, a toast message will display as on the image below. afterwards, developer options will be visible under settings. tap developer options and enable the following options: adb debugging in developer options find wireless debugging turn on wireless debugging check always allow on this network and tap allow go back to developer options and click turn off automatic wi-fi notethere may be differences in settings depending on your one ui version. connect your galaxy watch to android studio go to settings > developer options > wireless debugging and choose pair new device. take note of the wi-fi pairing code, ip address & port. in android studio, go to terminal and type: adb pair <ip address>:<port> <wi-fi pairing code> when prompted, tap always allow from this computer to allow debugging. after successfully pairing, type: adb connect <ip address of your watch>:<port> upon successful connection, you will see the following message in android studio’s terminal: connected to <ip address of your watch> now, you can run the app directly on your watch. turn on developer mode for health platform this step is only applicable to registered partners of samsung privileged health sdk. you can replace priv-health-tracking-mock-2023.aar in app/libs with the real library to receive real sensor data with the application. this requires health platform to be set in developer mode: on your watch go to settings > apps > health platform. quickly tap health platform title for 10 times. this enables developer mode and displays [dev mode] below the title. to stop using developer mode, quickly tap health platform title for 10 times to disable it. start your project after downloading the sample code containing the project files, in android studio click open to open existing project. locate the downloaded android project from the directory and click ok. establish service connection and check capabilities for the device to track data with the samsung privileged health sdk, it must connect to the service by healthtrackingservice api. after establishing a connection, verify if the required tracker type is available. to check this, get the list of available tracker types and verify that the tracker is on the list. in this code lab, you will utilize blood oxygen level and heart rate trackers. the healthtrackingservice api usage is in the table below. healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype. public void connectservice() establish a connection with samsung's health tracking service. public void disconnectservice() release a connection for samsung's health tracking service. public healthtrackercapability gettrackingcapability() provide a healthtrackercapability instance to get a supporting health tracker type list. initialize multiple trackers before the measurement starts, initialize the spo2 tracker by obtaining the proper health tracker object. in the connectionmanager.java file, navigate to initspo2(), create an oxygen saturation healthtracker instance, and pass it to the spo2listener instance. get the healthtracker object using the healthtrackingservice api. use the healthtrackertype.spo2 type as parameter. healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype. public healthtracker gethealthtracker(healthtrackertype healthtrackertype) provide a healthtracker instance for the given healthtrackertype. pass the healthtracker object to the spo2listener instance object. spo2listener public void sethealthtracker(healthtracker tracker) set healthtracker instance for the given tracker. /******************************************************************************************* * [practice 1] create blood oxygen level health tracker object * - get health tracker object * - pass it to spo2listener ------------------------------------------------------------------------------------------- * - (hint) replace todo 1 with parts of code * (1) get healthtracker object using healthtrackingservice.gethealthtracker() * use healthtrackertype.spo2 type as parameter * (2) pass it to spo2listener using sethealthtracker function ******************************************************************************************/ public void initspo2(spo2listener spo2listener) { //"todo 1 (1)" //"todo 1 (2)" sethandlerforbaselistener(spo2listener); } next, in the connectionmanager.java file, in the initheartrate() function, create a heart rate healthtracker instance, and pass it to the heartratelistener instance. get the healthtracker object using the healthtrackingservice api. use the healthtrackertype.heart_rate type as parameter. pass the healthtracker object to the heartratelistener instance object. heartratelistener public void sethealthtracker(healthtracker tracker) set healthtracker instance for the given tracker. /******************************************************************************************* * [practice 2] create heart rate health tracker object * - get health tracker object * - pass it to heartratelistener ------------------------------------------------------------------------------------------- * - (hint) replace todo 2 with parts of code * (1) get healthtracker object using healthtrackingservice.gethealthtracker() * use healthtrackertype.heart_rate type as parameter * (2) pass it to heartratelistener using sethealthtracker function ******************************************************************************************/ public void initheartrate(heartratelistener heartratelistener) { //"todo 2 (1)" //"todo 2 (2)" sethandlerforbaselistener(heartratelistener); } start and stop trackers for the client app to start obtaining the data through the sdk, set a listener method on healthtracker. this method will be called every time there is new data. after the measurement completes, the listener has to be disconnected. to start measurement in the baselistener.java file, navigate to starttracker() function, and set trackereventlistener as listener healthtracker object. set an event listener on healthtracker object using healthtracking api. use the healthtracker.trackereventlistener object instance as parameter. healthtrackerhealthtracker enables an application to set an event listener and get tracking data for a specific healthtrackertype. public void seteventlistener(healthtracker.trackereventlistener listener) set an event listener to this healthtracker instance. /******************************************************************************************* * [practice 3] start health tracker by setting event listener * - set event listener on health tracker ------------------------------------------------------------------------------------------- * - (hint) replace todo 3 with parts of code * set event listener on healthtracker object using healthtracker.seteventlistener() * use trackereventlistener object as parameter ******************************************************************************************/ public void starttracker() { log.i(app_tag, "starttracker called "); log.d(app_tag, "healthtracker: " + healthtracker.tostring()); log.d(app_tag, "trackereventlistener: " + trackereventlistener.tostring()); if (!ishandlerrunning) { handler.post(() -> { //"todo 3" sethandlerrunning(true); }); } } to stop measurement, unset the trackereventlistener from the healthtracker object in the stoptracker() function. unset the event listener on healthtracker object using healthtracking api. healthtrackerhealthtracker enables an application to set an event listener and get tracking data for a specific healthtrackertype. public void unseteventlistener() stop the registered event listener to this healthtracker instance. /******************************************************************************************* * [practice 4] stop health tracker by removing event listener * - unset event listener on health tracker ------------------------------------------------------------------------------------------- * - (hint) replace todo 4 with parts of code * unset event listener on healthtracker object using healthtracker.unseteventlistener() ******************************************************************************************/ public void stoptracker() { log.i(app_tag, "stoptracker called "); log.d(app_tag, "healthtracker: " + healthtracker.tostring()); log.d(app_tag, "trackereventlistener: " + trackereventlistener.tostring()); if (ishandlerrunning) { //"todo 4" sethandlerrunning(false); handler.removecallbacksandmessages(null); } } process obtained and batching data the response from the platform will be asynchronous with the results you want to obtain. follow the steps below to get blood oxygen level and heart rate data. in the spo2listener.java file, navigate to updatespo2() function, and read spo2 data from datapoint: get the oxygen saturation status using the datapoint api (key: valuekey.spo2set.status). get the oxygen saturation value using the datapoint api (key: valuekey.spo2set.spo2). datapointdatapoint provides a map of valuekeyand value with a timestamp. public <t>t getvalue(valuekey<t> type) get data value for the given key. /******************************************************************************************* * [practice 5] read values from datapoint object * - get blood oxygen level status * - get blood oxygen level value ------------------------------------------------------------------------------------------- * - (hint) replace todo 5 with parts of code * (1) remove spo2status.calculating and * set status from 'datapoint' object using datapoint.getvalue(valuekey.spo2set.status) * (2) set spo2value from 'datapoint' object using datapoint.getvalue(valuekey.spo2set.spo2) * if status is 'spo2status.measurement_completed' ******************************************************************************************/ public void updatespo2(datapoint datapoint) { int status = spo2status.calculating; //"todo 5 (1)" int spo2value = 0; //"todo 5 (2)" trackerdatanotifier.getinstance().notifyspo2trackerobservers(status, spo2value); log.d(app_tag, datapoint.tostring()); } in the heartratelistener.java file, navigate to readvaluesfromdatapoint() function, and read the heart rate data from datapoint: get heart rate status using datapoint api (key: valuekey.heartrateset.heart_rate_status). get heart rate value using datapoint api (key: valuekey.heartrateset.heart_rate). get heart rate ibi value using datapoint api (key: valuekey.heartrateset.ibi_list). get ibi quality using datapoint api (key: valuekey.heartrateset.ibi_status_list). /******************************************************************************************* * [practice 6] read values from datapoint object * - get heart rate status * - get heart rate value * - get heart rate ibi value * - check retrieved heart rate’s ibi and ibi quality values ------------------------------------------------------------------------------------------- * - (hint) replace todo 6 with parts of code * (1) set hrdata.status from 'datapoint' object using datapoint.getvalue(valuekey.heartrateset.heart_rate_status) * (2) set hrdata.hr from 'datapoint' object using datapoint.getvalue(valuekey.heartrateset.heart_rate) * (3) set local variable 'list<integer> hribilist' using datapoint.getvalue(valuekey.heartrateset.ibi_list) * (4) set local variable 'final list<integer> hribistatus' using datapoint.getvalue(valuekey.heartrateset.ibi_status_list) * (5) set hrdata.ibi with the last of 'hribilist' values * (6) set hrdata.qibi with the last of 'hribistatus' values ******************************************************************************************/ public void readvaluesfromdatapoint(datapoint datapoint) { heartratedata hrdata = new heartratedata(); //"todo 6 (1)" //"todo 6 (2)" //"todo 6 (3)" //"todo 6 (4)" //"todo 6 (5)" //"todo 6 (6)" trackerdatanotifier.getinstance().notifyheartratetrackerobservers( hrdata); log.d(app_tag, datapoint.tostring()); } run unit tests for your convenience, you can find an additional unit tests package. this lets you verify your code changes even without using a physical watch. see instructions below on how to run unit tests: right click on com.samsung.health.multisensortracking (test) and execute run 'tests in 'com.samsung.health.multisensortracking'' command. if you completed all the tasks correctly, you can see that all the unit tests passed successfully. run the app after building the apk, you can run the application on a connected device to see blood oxygen level and heart rate values. right after the app is started, it requests for user permission. allow the app to receive data from the body sensors. afterwards, it shows the application's main screen and automatically display the heart rate. to get the blood oxygen level (spo2) value, tap on the measure button. to stop the measurement, tap on the stop button. tap on the details label to see more heart rate data. you're done! congratulations! you have successfully achieved the goal of this code lab. now, you can create a health app that measures blood oxygen level and heart rate by yourself! if you're having trouble, you may download this file: measuring blood oxygen level and heart rate complete code (134.82 kb) to learn more about samsung health, visit: developer.samsung.com/health

      https://developer.samsung.com/codelab/health/blood-oxygen-heart-rate.html
      1. Develop
      2. Galaxy Watch for Tizen

      doc

      Native Watch Face

      create your first tizen wearable native watch application welcome to tizen wearable native watch application development! note for watch face developers : you can create watch faces with galaxy watch studio or tizen studio for your personal enjoyment. however you will not be able to add watch face applications to seller portal until you have received approval to publish watch faces. the review is not required for watch app and widget developers. galaxy store supports watch faces for galaxy watch3 and earlier (samsung watches running on tizen). watch faces for galaxy watch4 and later (running on wear os powered by samsung) is only supported in the chinese galaxy store. a wearable native watch application is created using the c language, and can be run on tizen wearable devices to display a customized watch face to the user. study the following instructions to help familiarize yourself with the tizen native application development process as well as using the tizen studio and installing the created application on the emulator or target device. with the instructions, you can create and run a basic wearable native watch application, which displays some text and the current time on the screen: before you get started with developing tizen applications, download and install the tizen studio. for more information on the installation process, see the installation guide. create a wearable native watch project using the tizen studio. this step shows how you can use a predesigned project template that creates all the basic files and folders required for your project. build the application. after you have implemented code for the features you want, this step shows how you can build the application to validate and compile the code. run the application. this step shows how you can run the application on the emulator or a real target device. design a ui. this step shows how you can create the application ui and make small alterations to it to improve the usability of your application. when you are developing a more complex application, you can take advantage of the native tools included in the tizen studio to ease the tasks of creating functionality and designing the application ui. creating a project the following example shows you how to create and configure a basic wearable native watch application project in the tizen studio. an application project contains all the files that make up an application. the following figure illustrates the application to be created. the application screen displays the hello watch text and the current time, which continues to be refreshed every second while the application runs. figure: wearable native watch application to create the application project: launch the tizen studio. in the tizen studio menu, select file > new > tizen project. the project wizard opens. in the project wizard, define the project details. the project wizard is used to create the basic application skeleton with the required folder structure and mandatory files. you can easily create different applications by selecting an applicable template or sample for the project wizard to use. select the template project type and click next. select the profile (wearable) and version from a drop-down list and click next. the version depends on the platform version you have installed and with which you are developing the application. select the native application application type and click next. select the watch template and click next. define the project properties and click finish. you can enter the project name (3-50 characters) and the unique package id. you can also select the location and working sets by clicking more properties. the project wizard sets up the project, creates the application files using the default content from the template, and closes. for more information on the project wizard and the available templates, see creating tizen projects with tizen project wizard. you can see the created project in the project explorer view. the most important files and folders include: inc: default folder for included source files res: folder for resource files used by the application only shared: folder for resource files to be shared with other applications src: folder for source code files lib: folder for external library files tizen-manifest.xml: manifest file used by the platform to install and launch the application figure: application in the project explorer note : you can view and modify the application configuration in the manifest editor. in this example, no configuration changes are required. your application project is now ready for further actions. next, build the application. managing the application configuration to view and modify the application configuration: in the project explorer view, double-click the tizen-manifest.xml file of the application. the tizen studio opens the file in the manifest editor. in the manifest editor, view and modify the configuration details using the various tabs: overview: define general information, such as the package, label, and icon of the application. features: define required software and hardware features. this information is used for application filtering in the tizen store. privileges: define the security-sensitive apis or api groups accessed and used by the application. localization: define localized values for the application label, description, and icon. advanced: define advanced features, such as application metadata and some miscellaneous options. source: view and edit the source code of the tizen-manifest.xml file. changes made and saved on the other tabs are reflected in the source code and vice versa. note : the tizen-manifest.xml file must conform to both the xml file format and the tizen native application specification requirements. editing the file in the source tab is intended for advanced users only. to save any changes, in the tizen studio menu, select file > save all. for more information on configuring the application, see setting the application manifest. understanding the source code pay attention to the following main issues in the application source code (in the inc/watch.h and src/watch.c files), to understand how the application is designed and how it works. for source code details related to the ui, see designing a simple ui. the watch application is initialized to use the functions and data types of the watch application api by including the <watch_app.h> header file in your application: #include <watch_app.h> all header files that you need are already included in the watch.h file, which is generated by the tizen studio when the template project is created. the life-cycle callbacks manage specific parts of the application life-cycle. they are set in the watch_app_lifecycle_callback_s structure, and the structure is passed to the watch_app_main() function of the watch application api to start the watch application event loop: int main(int argc, char *argv[]) { appdata_s ad = {0,}; int ret = 0; watch_app_lifecycle_callback_s event_callback = {0,}; app_event_handler_h handlers[5] = {null,}; event_callback.create = app_create; event_callback.terminate = app_terminate; event_callback.pause = app_pause; event_callback.resume = app_resume; event_callback.app_control = app_control; event_callback.time_tick = app_time_tick; event_callback.ambient_tick = app_ambient_tick; event_callback.ambient_changed = app_ambient_changed; ret = watch_app_main(argc, argv, &event_callback, &ad); if (ret != app_error_none) dlog_print(dlog_error, log_tag, "watch_app_main() is failed. err = %d", ret); return ret; } the create event is triggered before the application main loop starts. in this callback, you can initialize the application resources, such as create windows and data structures. static bool app_create(int width, int height, void *data) { /* hook to take necessary actions before the main event loop starts initialize ui resources and application's data if this function returns true, the main loop of application starts if this function returns false, the application is terminated */ appdata_s *ad = data; create_base_gui(ad, width, height); return true; } the time_tick event is triggered at least once per second. the watch applications can get the current time from the watch_time time handle to draw a normal watch. static void app_time_tick(watch_time_h watch_time, void *data) { /* called each second while your app is visible; update the watch ui */ appdata_s *ad = data; update_watch(ad, watch_time, 0); } note : for more information on the application life-cycle callbacks, see applications. an ambient mode is available on a low-powered wearable device. in this mode, the watch application shows a limited ui and receives only the ambient tick event every minute to reduce power consumption. the details of the limited ui drawn in the ambient mode depend on the device. in addition, due to the ambient mode being a low power mode, there are limits to the colors that can be shown on the screen. usually, when designing the ambient mode ui, draw it with limited colors (cyan, magenta, yellow, red, green, blue, black and white), and use less than 15% of the pixels on the screen. if you do not want to draw your own ambient mode ui, set the ambient-support attribute to false in the watch application manifest file to allow the platform to show a default ambient mode ui. note : to use the ambient mode, the user must enable it in the device settings. in addition, on the galaxy watch device, the ambient mode activates only when you are wearing the watch on the wrist. - the `ambient_tick` callback is triggered every minute while the device is in the ambient mode. you can use the callback to update the time on your watch application in the ambient mode. in this callback, do not perform time-consuming tasks and always update the ui as quickly as possible. the platform can put the device to sleep shortly after the ambient tick expires. ```c static void app_ambient_tick(watch_time_h watch_time, void *data) { /* called at each minute while the device is in ambient mode. update watch ui. */ appdata_s *ad = data; update_watch(ad, watch_time, 1); } ``` - the `ambient_changed` callback is triggered when the ambient mode is enabled or disabled on the device. you can use the callback to initialize your ambient mode ui. ```c static void app_ambient_changed(bool ambient_mode, void *data) { if (ambient_mode) /* prepare to enter the ambient mode */ else /* prepare to exit the ambient mode */ } ``` building your application after you have created the application project, you can implement the required features. in this example, only the default features from the project template are used, and no code changes are required. when your application code is ready, you must build the application. the building process performs a validation check and compiles your files. you can build the application in the following ways: automatically the automatic build means that the tizen studio automatically rebuilds the application whenever you change a source or resource file and save the application project. to use the automatic build: select the project in the project explorer view. in the tizen studio menu, select project > build automatically. a check mark appears next to the menu option. you can toggle the automatic build on and off by reselecting project > build automatically. manually the manual build means that you determine yourself when the application is built. to manually build the application, right-click the project in the project explorer view and select build project. figure: manually building the application alternatively, you can also select the project in the project explorer view and do one of the following: in the tizen studio menu, select project > build project. press the f10 key. you can have more than one build configuration. to see the current active configuration or change it, right-click the project in the project explorer view and select build configurations > set active. the default configuration is debug. for more information, see building applications. after you have built the application, run it. running your application you can run the application on the emulator or a real target device. running on the emulator to run the application on the emulator: launch an emulator instance in the emulator manager: in the tizen studio menu, select tools > emulator manager. in the emulator manager, select a wearable emulator from the list and click launch. if no applicable emulator instance exists, create a new one. the emulator is launched in its own window. you can also see the new emulator instance and its folder structure in the device manager. generate a security profile. before you run the application, you must sign your application package with a certificate profile in the tizen studio. run the application: in the project explorer view, right-click the project and select run as > tizen native application. alternatively, you can also select the project in the project explorer view and do one of the following: press the ctrl + f11 key. click the run icon in the toolbar. if you have created multiple emulator instances, select the instance you want from the combo box in the toolbar before selecting to run the application. if you select an offline emulator, it is automatically launched when you select to run the application. confirm that the application launches on the emulator. note : if the emulator display has switched off, you cannot see the application launch. to switch the display on, click the power key (in the lower-right corner of the emulator). 3. change the watch face.<a name="watchface"></a> to change the watch face and make the installed watch application visible: ![changing the watch face](https://docs.tizen.org/application/native/get-started/wearable-watch/media/watch_run_change_wn.png) 1. if the emulator display has been switched off, activate it by pressing the **power** key (in the lower-right corner of the emulator). 2. on the home screen (showing the default watch face), press the **power** key. 3. in the recent apps screen, select **settings \> watch faces and styles \> watch faces**. 4. swipe right until you find your application icon, and select it. the **clock changed** message is displayed. 5. press the **back** key (in the upper-right corner of the emulator device) multiple times, until the home screen with your new watch face is shown. ![application running in the emulator](https://docs.tizen.org/application/native/get-started/wearable-watch/media/watch_run_face_wn.png) while the application is running, the **log** view in the tizen studio shows the log, debug, and exception messages from the methods defined in the log macros. to see the view, in the tizen studio menu, go to **window \> show view \> log**. for more information on using the emulator features, see using emulator control keys, menu, and panel and using extended emulator features. running on a target device to run the application on a target device: connect the wearable target device to your computer: define settings on the device: go to settings > connections, and switch on wi-fi. the device and the computer must be connected to the same wi-fi network. note the ip address the device is using. go to settings > gear info, and switch on the debugging mode. in the terminal, enter the following commands: cd tizen-studio/tools ./sdb connect <ip address of galaxy watch> use the ip address you noted before. instead of the terminal, you can also use the remote device manager for the connection. in the first attempt, the connection fails and the device asks for user confirmation. to allow galaxy watch to read log data, copy files to and from your computer, and install the application manually, click the accept mark. in the device manager, confirm that the device is connected (shown in the device list). generate an author certificate. before you run the application, you must sign your application package with a certificate profile in the tizen studio. run the application: in the device manager, select the device. in project explorer view, right-click the project and select run as > tizen native application. alternatively, you can also select the project in the project explorer view and do one of the following: press the ctrl + f11 key. click the run icon in the toolbar. if you have both a connected device and existing emulator instances, select the device from the combo box in the toolbar before selecting to run the application. confirm that the application launches on the target device. like with the emulator, you can change the watch face in the device settings to see the watch application on the home screen. note : the application is launched using the default debug run configuration. to create and use another configuration: in the project explorer view, right-click the project and select run as > run configurations. in the run configurations window, click the new launch configuration icon (), define the configuration details, and launch the application by clicking run. designing a simple ui the wearable watch application created with the watch template has a simple user interface with a label component showing the hello watch text and the current time (hour, minute, and second). the ui is created using efl. in the ambient mode, the watch template ui is identical to the normal ui, except that is shows the current time without the seconds. figure: user interface in the watch template (ambient mode on the right) creating the basic ui the ui in the watch template contains the following components: the efl ui always contains a window component, which is the root component of the entire ui. the application uses the conformant component as a container for other ui components. the label showing the hello watch text and the current time is implemented with a label component. the ui is created in the watch.c file: data structure a pointer to the ui components is stored in the appdata_s data structure: struct appdata { /* window */ evas_object *win; /* conformant */ evas_object *conform; /* label */ evas_object *label; }; typedef struct appdata appdata_s; ui creation the app_create() life-cycle callback is called when the application main loop starts, and it calls the create_base_gui() function to create the ui: static bool app_create(int width, int height, void *data) { /* define system callbacks */ appdata_s *ad = data; create_base_gui(ad, width, height); return true; } ui components the create_base_gui() function creates the ui components: window, conformant, and label. the function receives a pointer to fill in the appdata_s structure. static void create_base_gui(appdata_s *ad, int width, int height) { the window object of the idle screen is retrieved with the watch_app_get_elm_win() function of the watch application api. the watch_time_h handle is created for managing the current time, and the evas_object_resize() function is used to resize the window to fit the screen. int ret; watch_time_h watch_time = null; ret = watch_app_get_elm_win(&ad->win); if (ret != app_error_none) { dlog_print(dlog_error, log_tag, "failed to get window. err = %d", ret); return; } evas_object_resize(ad->win, width, height); the conformant component is used as a container for the other ui components: the component is the first object added inside the window with the elm_conformant_add() function. the conformant component is set as a resize object of the window by using the elm_win_resize_object_add() function. it means that the conformant size and position are controlled by the window component directly. the evas_object_show() function makes the conformant component visible. ad->conform = elm_conformant_add(ad->win); evas_object_size_hint_weight_set(ad->conform, evas_hint_expand, evas_hint_expand); elm_win_resize_object_add(ad->win, ad->conform); evas_object_show(ad->conform); the label component for the text and time is added with the elm_label_add() function. the label is added inside the conformant component, which is the label's parent. the label is resized and moved so that it is located below the first third of the screen height. ad->label = elm_label_add(ad->conform); evas_object_resize(ad->label, width, height / 3); evas_object_move(ad->label, 0, height / 3); evas_object_show(ad->label); the watch_time_get_current_time() function retrieves the current time, and the update_watch() function uses the current time to set the label component content. finally, the watch_time_h handle is deleted. ret = watch_time_get_current_time(&watch_time); if (ret != app_error_none) dlog_print(dlog_error, log_tag, "failed to get current time. err = %d", ret); update_watch(ad, watch_time, 0); watch_time_delete(watch_time); when all the ui components are ready, the evas_object_show() function makes the window component visible. this means that the window displays everything on the screen at once. evas_object_show(ad->win); } modifying existing components when the basic ui exists, you can easily modify the components in the ui by using the component-specific functions, or more general evas object functions. for example, the following modification to the label component changes the text color to red: ad->label = elm_label_add(ad->conform); evas_object_color_set(ad->label, 255, 0, 0, 255); evas_object_resize(ad->label, width, height / 3); evas_object_move(ad->label, 0, height / 3); evas_object_show(ad->label); figure: modified label component showing the current time you can update the time on the screen with the time_tick (in the normal mode) or ambient_tick (in the ambient mode) callback: both callbacks contain the current time handle, and call the update_watch() function to update the label content on the screen: static void app_time_tick(watch_time_h watch_time, void *data) { appdata_s *ad = data; update_watch(ad, watch_time, 0); } static void app_ambient_tick(watch_time_h watch_time, void *data) { appdata_s *ad = data; update_watch(ad, watch_time, 1); } in the update_watch() function, the watch_time_h handle is used to retrieve the current time elements (hour, minute, and second) with the watch_time_get_hour24(), watch_time_get_minute(), and watch_time_get_second() functions of the watch application api. the text for the label component is defined (based on whether the normal or ambient mode is used), and set with the elm_object_text_set() function. static bool update_watch(appdata_s *ad, watch_time_h watch_time, int ambient) { char watch_text[text_buf_size]; int hour24; int minute; int second; if (watch_time == null) return; watch_time_get_hour24(watch_time, &hour24); watch_time_get_minute(watch_time, &minute); watch_time_get_second(watch_time, &second); if (!ambient) { snprintf(watch_text, text_buf_size, "<align=center>hello watch<br/>%02d:%02d:%02d</align>", hour24, minute, second); } else { snprintf(watch_text, text_buf_size, "<align=center>hello watch<br/>%02d:%02d</align>", hour24, minute); } elm_object_text_set(ad->label, watch_text); }

      https://developer.samsung.com/galaxy-watch-tizen/creating-your-first-app/native-watch-face.html
      No Search Results
      No Search results. Try using another keyword.
      • <<
      • <
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • >
      • >>
      Samsung Developers
      Samsung Developers
      Quick Link
      • Android USB Driver
      • Code Lab
      • Galaxy Emulator Skin
      • Foldables and Large Screens
      • One UI Beta
      • Remote Test Lab
      • Developer Support
      Family Site
      • Bixby
      • Knox
      • Samsung Pay
      • SmartThings
      • Tizen
      • Samsung Research
      • SamsungOpen Source
      • Samsung Dev Spain
      • Samsung Dev Brazil
      Legal
      • Terms
      • Privacy
      • Open Source License
      • Cookie Policy
      Social Communications
      • Facebook
      • Instagram
      • Twitter
      • YouTube
      • Buzzsprout
      • Rss
      • Linkedin
      • System Status
      • Site Map
      • System Status
      • Site Map
      • facebook
      • instagram
      • twitter
      • youtube
      • buzzsprout
      • rss
      • linkedin

      Copyright © 2023 SAMSUNG. All rights reserved.