Quantcast
Jump to content


Recommended Posts

Posted

2020-06-26-01-banner-v2.jpg

If you are a watch face designer and want to distribute your watch face, it is highly recommended that you test your watch face on a real device before publishing it. While Galaxy Watch Studio (GWS) provides an emulator (the Run window) on which to run your watch face, it is not the same as running it on an actual device.

Remote Test Lab (RTL) is a service that allows you to test your app on a real device, access the device remotely through the web, and it’s free! RTL is an amazing solution if you can’t buy a device or if you want to test your watch face on different watch models. This reduces your hardware costs for testing a watch face.

Design a Watch Face

If you don’t have a watch face to test, here is how to create a simple design using GWS.

Launch GWS and create a new project. For simplicity, add a background, analog clock, and digital clock. The digital clock is used to add a time zone selector. The intention behind using the time zone selector is because we can’t test the tap action using the Run window. So, a real device is needed to test the time zone selector. If you want to know how to make a time zone selector, you can read this blog.

After completing the design, you have to build the project so that a .tpk file is created. Go to Project > Build, set the Target API version, enter the password for your author certificate, and click Build (see image below). If you don’t change the location path of the workspace folder, then the .tpk file is saved in C:\Users\user_name\GearWatchDesigner\workspace.

Figure 1

Get Started with RTL

There are a few system requirements to run RTL on your PC. Read about Remote Test Lab from here. The system requirements are:

  • A Samsung account
  • Standard web browser with JavaScript support
  • Java Runtime Environment 7 or later with Java Web Start.
  • Internet environment where port 2600 is available.

First, go to Remote Test Lab and sign in using your Samsung account. If you don’t have a Samsung account, create one and then sign in. Next, click GET STARTED.
Now, select Watch from left sidebar.

2020-06-26-01-02.jpg?class=img-thumbnail

There are four types of devices and OS versions that are available (on 26th June, 2020):

Device Name Model Name OS Version
Galaxy Watch SM-R800 Tizen 4.0.0.2
Gear Sport SM-R600 Tizen 3.0.0.2
Gear S3 SM-R765A Tizen 3.0.0.2
Gear Fit2 SM-R360 Tizen 2.3.1.6

Choose a device based on your requirements. In the following example, Galaxy Watch is selected for testing.

  1. Select the OS version for the Galaxy Watch.

  2. Select any available device from the Device List. In the device name, IN, KR, or US indicates the country in which the device is located. It is better to choose the closest country to avoid latency issues. For example, if you are in Korea, you should select KR.

  3. Choose the amount of time to reserve the device from Reserve Time. Higher reservation times require more credits (credits are free and you receive a limited number every day), so it would be wise if you don’t reserve unnecessary time.

    2020-06-26-01-03.jpg

  4. After selecting all options for your selected device, click Start. The details of your selected device are shown.

    2020-06-26-01-04.jpg?class=img-thumbnail

    If a download window displays, click on start to download the JNLP file. Run the JNLP file to download the RTL client. The download window displays when the RTL Client is downloaded for the first time or an updated version is available. After launching the RTL client, click Run.

    2020-06-26-01-05.jpg

    The time to launch a device on RTL may vary depending on your network environment. A warning box appears. Read the warnings and click** I understand and wish to proceed.** Next, choose the language of your selected device.

    2020-06-26-01-06.jpg

Test Your Watch Face on RTL

After starting the device, follow the steps below to install and run your watch face.

  1. Right-click on the watch to launch the context menu. To learn about all features of the context menu, read RTL client features.

  2. Click on Test > Install Application
    2020-06-26-01-07.jpg?width=300px

  3. From the Look in dropdown menu, navigate to the directory that contains the .tpk file which you want to test.
    2020-06-26-01-08.jpg?width=450px

  4. Select the .tpk file and click Open. A dialog box shows the progress of opening the selected file on the remote device.
    2020-06-26-01-09.jpg

  5. Click Install from the Application Manager. Click OK after installing the watch face.
    2020-06-26-01-10.jpg

  6. Click on the default watch face.

  7. Rotate the bezel clockwise or counter-clockwise to select your installed watch face.

  8. When you find your installed watch face, click on it to launch it.
    2020-06-26-01-11.jpg

  9. Now, click on the digital clock to change the time zone for testing the time zone selector tap action.
    2020-06-26-01-12.jpg

  10. Search for and select your desired city to change the time zone
    2020-06-26-01-13.jpg?width=550px

Exit from the Remote Device

It is recommended to uninstall your application from the remote device after completing your test. Tap on the watch face and click on the delete icon to uninstall the watch face.
2020-06-26-01-14.jpg?width=700px

Now, right-click on the watch and click Exit to close the remote device.
2020-06-26-01-15.jpg?width=700px

Using RTL, you can test your watch face designs on different watch models and different Tizen versions of your targeted users. You can do it anywhere, even if you are not at home or in the office. Remote Test Lab allows you to test your watch faces on many devices even if you have a small budget.

View the full blog at its source



  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Similar Topics

    • By Samsung Newsroom
      The Samsung Galaxy Watch is an essential gadget for modern health-conscious people. It provides health-related data that helps to prevent health issues. These Galaxy Watch features are driving its rapid rise in popularity and encouraging application developers to create applications specifically for it.
      The Galaxy Watch offers a great user experience and performance. This is where the Flutter framework plays a crucial role. It is a top choice when it comes to a beautiful UI, good performance, and rapid development. Flutter offers cross-platform support, which means we can build applications for multiple platforms using a single code base. With Flutter’s strong community support, developers can make production-grade applications with little effort.
      This blog outlines the steps involved in creating an application for the Galaxy Watch using Flutter, allowing you to explore the possibilities it offers.
      Set up your environment
      Please follow the official Set up Flutter guide to install the Flutter framework correctly on your device. After the installation, please check the status by running the following command. It tells you if any component is missing or suggests what to do next.
      flutter doctor NoteIf the above command provides suggestions or fixes, follow those to solve any problems before continuing. Get started with Flutter projects
      To simplify this application example, we are retrieving the battery levels from a Galaxy Watch to make it easy to understand the development process.
      In this blog, we use Android Studio as the IDE. But, if you are comfortable with VS Code, you can follow this Official Codelab to build your first Flutter application with that instead.
      To start, install the Flutter and Dart plugins on Android Studio. These plugins make it easier to manage Flutter development using the UI instead of the CLI.
      Figure 1: Install Flutter and Dart plugins
      After completing the setup, it is time to create the Flutter Project for Galaxy Watch.
      Go to File > New > New Flutter Project. Note that this method only appears if you installed the plugins mentioned above. Select Flutter from the left side panel and set the Flutter SDK path where it was installed during the Flutter setup, and click the Next button. Enter a project name and location, and choose the language according to your preferences. Uncheck all platform options except Android and keep the other options as they are. Click the Create button, and a new window should open with the project. You are now done. Next, we need to modify the code for Galaxy Watch.
      Break down the elements of a Flutter project
      A simple Flutter project for the Android platform contains the following folders:
      android/: Contains Android platform code and configurations. lib/: The main folder for a Flutter application. It contains your Dart code. The main.dart file is the entry point of a Flutter application. pubspec.yaml: A configuration file for Flutter. It manages the application’s dependencies and assets. Configure the project to support Galaxy Watch
      Let’s modify the generated code to include the battery level, allowing it to be displayed. Open the pubspec.yaml file and add the following plugins under dependencies:
      dependencies: flutter: sdk: flutter wear: ^1.1.0 battery_plus: ^6.0.3 We use the wear and battery_plus plugins for this project. The wear plugin provides APIs for wear-related functionality, and battery_plus is for accessing battery information from the OS. Both plugins were developed by the Flutter Community. You can even get battery information or trigger Wear OS native APIs using the Method Channel, which we will cover in our future blogs.
      Change the value of minSdk to 23, which is required for the plugins that we are using. Go to android > app > build.gradle and change the minSdk property value under defaultConfig.
      defaultConfig { applicationId = "com.example.flutter_app" minSdk = 23 targetSdk = flutter.targetSdkVersion versionCode = flutterVersionCode.toInteger() versionName = flutterVersionName } Add the following code to your AndroidManifest.xml file, above the <application> tag. This tag defines that we are building the application for watches.
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-feature android:name="android.hardware.type.watch" /> <application android:label="galaxy_watch_battery_info" Build the watch application
      The main challenge is crafting your application to fit a tiny screen. We must be aware of good practices regarding UI, UX, and compactness at the same time. But as mentioned, this application is a simple one.
      Here we work with the build function of the MyHomePage class, where the UI implementation is applied. The main() function is the starting point for a Flutter application. It triggers the build function sequentially. Refer to the following build method for an example.
      @override Widget build(BuildContext context) { return MaterialApp( title: 'Galaxy Watch Demo', theme: ThemeData( visualDensity: VisualDensity.compact, useMaterial3: true, colorSchemeSeed: const Color(0x9f4376f8), ), home: Scaffold( body: SafeArea( child: _getWatchView(context), ), ), ); } The widgets we use are:
      MaterialApp: The root widget that contains all the contents of the application UI and provides application functionalities like home, theming, navigations, localizations, and so on. Scaffold: It provides a visual layout structure for an application, which has options like an app bar and body. SafeArea: A widget that encircles its child to ensure it avoids overlap with the OS interface. Tailor the UI
      We can now access the WatchShape widget since we converted our application to a watch application. WatchShape is the key widget for watch UI design. It provides the basic interface shapes for watches along with ambient modes of the watch. As mentioned earlier, the UI has a simple button that queries the battery level and shows it in a dialog.
      Widget _getWatchView(BuildContext context) { return WatchShape( builder: (BuildContext context, WearShape shape, Widget? child) { return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [const Text("Hello from Galaxy Watch"), ElevatedButton(onPressed: () { _battery.batteryLevel.then((batteryLevel) { showDialog<void>(context: context, builder: (_) => AlertDialog( content: Text('Battery: $batteryLevel%'), actions: <Widget>[ TextButton( onPressed: () { Navigator.pop(context); }, child: const Text('OK'), ) ])); }); }, child: const Text('Get battery level'))]) ); }, ); } The widgets we use are:
      WatchShape: This widget makes the UI compact to fit the watch’s small screen. battery.batteryLevel: To access the battery information, we need to create an instance of the Battery class. Please refer to the following code as an example. final Battery _battery = Battery(); Test the application
      Now it’s time to see how your application works. Save all the changes and run the application by clicking the Run button from the “Main Toolbar.” You should see a new UI titled “Hello from Galaxy Watch” with a single button. You have created a Flutter application for a Galaxy Watch. Congratulations!
      Figure 2: Sample application
      Conclusion
      This blog walked you through building an application for Galaxy Watch. Flutter offers an amazing toolkit for crafting beautiful UIs. Within a short time you can build applications on a device to accomplish what you want.
      Don’t forget to experiment with building applications and enjoy the journey of creating something new for Galaxy Watches. For more tips and tricks on Galaxy Watch application development, please keep your eyes on the Samsung Developer portal.
      View the full blog at its source
    • By Samsung Newsroom
      A sensor's maximum and minimum values are crucial for calibration, data interpretation, threshold setting, user interface, error handling, sensor selection, and performance optimization.
      Understanding the expected range of values helps identify and handle sensor errors or anomalies, and selecting the right sensor for the intended use case is essential. Efficient use of sensor data, especially in resource-constrained environments like mobile devices, can optimize data processing algorithms.
      The maximum and minimum values of sensors play a crucial role in the accurate and efficient functioning of sensor-based applications across various domains. In this tutorial, a wearable application is developed to collect the maximum and minimum ranges of sensors from a Galaxy Watch running Wear OS powered by Samsung. This tutorial shows how to retrieve all sensor ranges together, as well as from one specific sensor separately.
      Environment
      Android Studio IDE is used for developing the Wear OS application. In this tutorial, Java is used, but Kotlin can also be used.
      Let’s get started
      The SensorManager library is used here to collect sensor data from a Galaxy Watch running Wear OS powered by Samsung.
      Retrieve the maximum range of a sensor
      To get access and retrieve the maximum ranges from the sensor:
      In Android Studio, create a wearable application project by selecting New Project > Wear OS > Blank Activity > Finish. To access the sensor, add the body sensor in the application’s “manifests” file.
      <uses-permission android:name="android.permission.BODY_SENSORS" /> To run the application on devices with Android version 6 (API level 23) or later, you need runtime permission from the user to use the BODY_SENSORS APIs.
      Add the following code snippet to the onCreate() method before calling any sensor operations:
      if (checkSelfPermission(Manifest.permission.BODY_SENSORS) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{Manifest.permission.BODY_SENSORS}, 1); } else { Log.d("TAG___", "ALREADY GRANTED"); } After this code executes, a pop-up window appears and requests permission from the user. The sensor APIs return values only if the user grants permission. The application asks for permission only the first time it is run. Once the user grants permission, the application can access the sensors.
      Figure 1: Permission screen
      More details about runtime permissions can be found here.
      Create an instance of the SensorManager library before using it in the code.
      private SensorManager sensorManager; sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); To retrieve the maximum range of all sensors, create a sensor list using API Sensor.TYPE_ALL.
      List<Sensor> sensors = sensorManager.getSensorList(Sensor.TYPE_ALL); ArrayList<String> arrayList = new ArrayList<String>(); for (Sensor sensor : sensors) { if (sensor != null) { arrayList.add(sensor.getName()); arrayList.add(sensor.getMaximumRange() + ""); arrayList.add(sensor.getResolution() + ""); } } arrayList.forEach((n) -> System.*out*.println(n)); The above code shows the sensor name, maximum range, and resolution. You can get all the available data from the sensors, such as type, vendor, version, resolution, maximum range, and power consumption, by applying this same approach.
      Remember, sensor information may vary from device to device.
      Additionally, not every sensor that appears in the logcat view is accessible. Third-party applications are still not allowed to access Samsung's private sensors using the Android SensorManager. You get a “null” value if you try to access the private sensors.
      Moreover, there are no plans to make these sensors available to the public in the near future.
      You can check my blog Check Which Sensor You Can Use in Galaxy Watch Running Wear OS Powered by Samsung to find out which sensors are accessible on your Galaxy Watch and which are not.
      Retrieve the minimum range of a sensor
      The minimum range is the complement of maximum range.
      If the maximum range is x, then the minimum range can be calculated like this: x*(-1) = -x.
      If a specific sensor value should always be absolute, then the minimum range is zero (0).
      There is no direct API available to retrieve the minimum range of sensors from Galaxy Watch.
      Get a specific sensor value
      To get specific sensor values from a Galaxy Watch, you can filter the sensor list or use the getDefaultSensor() method. Here is an example that demonstrates how to do this. Add the necessary permission in the “manifests” file for the accelerometer sensor:
      <uses-feature android:name="android.hardware.sensor.accelerometer" /> Use the following code in your Activity or Fragment to retrieve the accelerometer data:
      sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); if (sensor != null) { textView_maxV.setText(textView_maxV.getText() + "" + sensor.getMaximumRange() + ""); textView_resolution.setText(textView_resolution.getText() + "" + sensor.getResolution() + ""); } Ensure you have added the TextView element to your XML file. Output of the above code:
      Figure 2: Maximum range and resolution of the accelerometer
      Remember, sensor ranges may vary from device to device. You may get different values for different Galaxy Watch models.
      Download the example from this blog:
      SensorMinxMax (313.2KB) Sep 10, 2024 Summary
      This article demonstrates how you can retrieve the maximum and minimum ranges of sensors from your Galaxy Watch running Wear OS powered by Samsung. You can also use the above approaches to get other necessary available information from the watch that can be used for the precise and effective operation of sensor-based applications in a variety of fields.
      If you have any questions about or need help with the information in this article, you can reach out to us on the Samsung Developers Forum or contact us through Developer Support.
      View the full blog at its source
    • By Samsung Newsroom
      View the full blog at its source





×
×
  • Create New...