Gear 2 Developer Tips : Keep Screen On, Seller Office Issues

Untitled

A few tips to solve issues encountered whilst developing gear 2 apps and submitting them to the app store. Some of them are due to the new changes to the samsung app seller office.

Gear 2 Does not Show up in the Tizen Wearable IDE (Connection Explorer)

You have successfully installed the IDE, and and have connected your Gear 2 device , but it does not show up in te Connection explorer as expected.  There are a few things you can do to troubleshoot this

Enable USB debugging on the Gear.
On your gear device, go to Settings, Gear Info , and enable USB debugging
Download and Install the Samsung USB drivers
You can download it from here .
Update the Drivers from Device Manager
On your pc, go to Device Manager (you can search for it)
Look for Portable Devices > Gear 2
Right click on the Gear 2 and update driver software > Search automanically for updated driver software. This should finish up the installation and get your gear showing in connection manager.

App Rejected : Screen Goes Off During User Interaction

Normally the device screen should timeout and go off when it isn’t in active use. This is important to save battery life. However, in your apps the screen can legally go off, in the middle of a user interaction. For example, in Gear Ship Shooters, the user can control the ship either by tapping the screen or tilting it. Notice that when in tilt-mode …. ship is cruising, the screen can suddenly go off after a few seconds of no touch interaction. The app was actually rejected because of this. You can solve it using the power api.

tizen.power.request("SCREEN", "SCREEN_NORMAL");

Also, dont forget to release this request when that page of your app is done … This is important so that the screen doesnt remain constantly only and drain the device battery. You can put the snippet below when you detect the back button has been pressed .. ie a user is leaving a page.

tizen.power.release("SCREEN");

App Upload : Invalid Package Id

While uploading an update to an existing app on the seller office, I once encountered an error that had to do with an invalid package Id. It says that the update and the original app must have the same package ID. I confirmed that both had in fact the same package id via the config.xml file.  It turned out that something else was responsible.
This can be  fixed by changing (increasing) the version number of the update in your config.xml file .

App Upload. Invalid Binary.

For linked gear app apks, the following should be added to the AndroidManifest.xml otherwise the invalid binary error will be shown when an attempt is made to upload it.

<meta-data android:name="GearAppType" android:value="wgt" />

<uses-permission android:name=”com.samsung.WATCH_APP_TYPE.Linked_Follower”/>

 App Rejected : Incorrect date

An app can be rejected because the date reported on the gear device differs from the date on the host android app. To produce this effect, change the GMT on the host app and observe to see if the time is correctly updated on the gear app. I got an app rejected because of this. It turns out that the javascript date() function does not reflect GMT/timezone changes. This can be fixed by replacing the date() function with

tizen.time.getCurrentDateTime()

Finito!

About Vykthur

Mobile and Web App Developer and Researcher. Passionate about learning, teaching, and recently - writing.
This entry was posted in Tutorials, Wearables and tagged . Bookmark the permalink.
  • Andrew

    I am developing a tilt based app and have made sure to keep the screen on but I am not sure how to release it after the home button has been pressed. The only event that I can see is the “back” event from the “tizenhwkey” function, which I have released the power in this case. The home button only seems to app in the background and not actually kill it. When does the system eventually kill the app?

    • Vykthur

      Hi Andrew,

      I am not exactly sure about this …
      I think what you would like is to be notified when an app is going to be killed so you can perform the “release” before the app is terminated. The full Tizen OS supports this, but Im not sure of how to accomplish this in Tizen for Wearable.

      For now, the best bet may be to have a timer that attempts to access the content of a div on your UI. If this value is undefined, that could signal that your app in not in the foreground , and you can “release”. This is not a clean solution, but could work .

      I’ll update this thread if I find a better way of detecting when an app is inthe background.

      -V

      • Andrew

        I set a timer to release after 30 seconds. The real problem I am having is that it never gets triggered if the user hits the home button. I think the app runs for some amount of time and is then suspended and the timer never kicks in to release the power setting. I say “suspended” because if the app is reopened, it picks up where it left off. Bottom line is, where’s the home key event Samsung?

        • Vykthur

          Did you enable your app to run in the background ?

          I have successfully fired events from timers running even after the home button has been clicked.

          UI events will likely not fire because your app is not ontop of the stack. What I do is that when the event is fired, I first bring my app to the foreground using the launch command … and then perform my actions … based on data I have passed to the launch command

          I have documented a bit of that here …

          http://denvycom.com/blog/gear-2-bring-app-from-background-to-foreground/

          -V.