Languages

Menu
Sites
Language
Need help running a service app on wearable device
(Please note that since the forum software doesn't allow "external links", I've had to modify all the bits to be http:|| with pipes instead of forward slashes. They are correct in the relevant XML/JS code.)
 
I'm trying to get a service app running on a Samsung Gear S2 (SM-R720 with firmware R720XXU2AOJ5) with Tizen Wearable SDK 2.3.1. I have been trying to follow the semi-guide at <developer.tizen.org/dev-guide/wearable/2.3.0/org.tizen.wearable.web.appprogramming/html/tutorials/service_tutorial/service_app_tutorial.htm> without success.
 
I began with an already-working JS-based GUI app. Based on the link above, I did the following:
 
- Added a <feature> element to the config.xml:
 
    <feature name="http:||tizen.org/feature/web.service"/>
 
- Added two <tizen:privilege> elements to the config.xml:
 
    <tizen:privilege name="http:||tizen.org/privilege/application.info"/>
    <tizen:privilege name="http:||tizen.org/privilege/application.launch"/>
 
- Added a <tizen:service> element to the config.xml:
 
    <tizen:service id="DFXHyIJESe.GearWebService" auto-restart="true" on-boot="true">
        <tizen:content src="service/service.js"/>
        <tizen:name>GearWebService</tizen:name>
        <tizen:icon src="service/service_icon.png"/>
        <tizen:description>Web Service Application Template</tizen:description>
    </tizen:service>
 
Note: the <tizen:application> element already looks like this:
 
    <tizen:application id="DFXHyIJESe.GearClientApp" package="DFXHyIJESe" required_version="2.3.1"/>
 
- Added a service/service.js file, essentially the same as the guide. (Excerpts below.)
 
I have been trying to ways to launch the app. The first uses tizen.application.launchAppControl as per the guide:
 
    var onLaunchAppControlSuccess = function() {
        console.log("launchAppControl succeeded.");
    };
    var onLaunchAppControlError = function(e) {
        console.log("launchAppControl error: Name: " + e.name + ", Message: " + e.message);
    };
    var SERVICE_APP_ID = "DFXHyIJESe.GearWebService";
    var appControl = new tizen.ApplicationControl("http:||tizen.org/appcontrol/operation/service");
    try {
        console.log("Launching app control for ID " + SERVICE_APP_ID);
        tizen.application.launchAppControl(appControl, SERVICE_APP_ID, onLaunchAppControlSuccess, onLaunchAppControlError);
    } catch (e) {
        console.log("Exception with launchAppControl: Name: " + e.name + ", Message: " + e.message);
    }
 
Results in this error message:
 
    launchAppControl error: Name: NotFoundError, Message: given package is not found
 
 
I've also tried it a second method, using tizen.application.launch:
 
    var onLaunchSuccess = function () {
        console.log("Service launched successfully.");
    };
    var onLaunchError = function (error) {
        console.log("Failed to launch: " + JSON.stringify(error));
    };
    var onGetAppsContextSuccess = function (contexts) {
        console.log("Checking for service...");
        var serviceAppFound = false;
        console.log("Looking for service ID " + SERVICE_APP_ID);
        for (var i = 0; i < contexts.length; i++) {
            try {
                var appInfo = tizen.application.getAppInfo(contexts[i].appId);
                console.log("AppInfo " + i + " ID: " + appInfo.id);
                if (appInfo.id === SERVICE_APP_ID) {
                    console.log("Service running.");
                    serviceAppFound = true;
                    break;
                }
            } catch (e) {
                console.log("Exception with getAppInfo: " + e.message);
            }
        }
        if (serviceAppFound) {
            console.log("Service running.");
        } else {
            console.log("Service not running.");
            try {
                console.log("Launching [" + SERVICE_APP_ID + "]...");
                tizen.application.launch(SERVICE_APP_ID, onLaunchSuccess, onLaunchError);
            } catch (e) {
                console.log("Exception with launch: " + e.message);
            }
        }
    };
    try {
        tizen.application.getAppsContext(onGetAppsContextSuccess, onGetAppsContextError);
    } catch (e) {
        console.log("Exception with getAppsContext: " + e.message);
    }
 
Results in:
 
Checking for service...
Looking for service ID DFXHyIJESe.GearWebService
AppInfo 0 ID: com.samsung.w-home
AppInfo 1 ID: com.samsung.watchface
AppInfo 2 ID: org.tizen.data-provider-slave
AppInfo 3 ID: com.samsung.shealth.widget.pedometer
AppInfo 4 ID: com.samsung.w-calendar2.widget.monthly
AppInfo 5 ID: com.samsung.weather-widget
AppInfo 6 ID: com.samsung.w-music-player.widget
AppInfo 7 ID: com.samsung.w-music-player.music-control-service
AppInfo 8 ID: com.samsung.shealth-service
AppInfo 9 ID: health-data-service
AppInfo 10 ID: com.samsung.wusvc
AppInfo 11 ID: com.samsung.message.consumer
AppInfo 12 ID: com.samsung.watchface-service
AppInfo 13 ID: com.samsung.clocksetting
AppInfo 14 ID: dbox.web-provider
AppInfo 15 ID: com.samsung.w-gallery.consumer
AppInfo 16 ID: DFXHyIJESe.GearClientApp
Service not running.
Launching [DFXHyIJESe.GearWebService]...
Failed to launch: {"code":0,"name":"UnknownError","type":"UnknownError","message":"unknown error"} 
 
Can anyone help me get a simple, JS-based service running on this Tizen 2.3 wearable device?
 
Thanks!
Edited by: Thomas Hauk on 24 Mar, 2016

Responses

5 Replies
daniel kim

Hi,

Web service need partner-level certificate. but I think that Gear S2 doesn't support web service yet if you've used partner-level certifcate.

Regards

Thomas Hauk

I have a partner-level certificate.

Or are you saying that the Gear S2 doesn't support web services at all?

daniel kim

Hi,

I would suggest you to check this link as well. as Seoghyun Kang said, the Wearable profile supports the service application. but it seems that it is not opened.
        https://developer.tizen.org/forums/web-application-development/full-service-application-example?tab=active

Regards

Thomas Hauk

What do you mean by "not opened"? Do you mean "not opened to external (partner-level) developers"?

If so, when will it be "opened up"?

daniel kim

Hi,

I've checked  below sample code with Gear S2 once again, but it seems that service is not available.

        https://drive.google.com/open?id=0BzgUeghcKkMIazhkYnZqUmtUMW8 - MasterW
        https://drive.google.com/open?id=0BzgUeghcKkMIckkxaUthNVNRZE0 - SlaveW

I think that currently you can't use web service even though you have a partner-level certificate and maybe you can make your application to background running using this.

    <tizen:setting background-support="enable" encryption="disable" hwkey-event="enable"/>

Regards