Hi,
I'm trying to send an "intent" via tizen.application.launchAppControl from a Gear S to a paired Phone.
In case of just starting the galaxy store to show a specific app everything works fine, e.g.
var appid = "com.samsung.w-manager-service"
, type = "phone"
, url = "samsungapps://ProductDetail/appid"
, extra_data = [
new tizen.ApplicationControlData("type", [type]),
new tizen.ApplicationControlData("deeplink", [url])
]
, appControl = new tizen.ApplicationControl(
"http://tizen.org/appcontrol/operation/default",
null,
null,
null,
extra_data
)
, appControlReplyCallback = {
// callee sent a reply
onsuccess: function(data) {
console.log("launchUrl reply success");
console.log("success: data = " + JSON.stringify(data));
},
// callee returned failure
onfailure: function() {
console.log("launchUrl reply failed");
}
}
;
try {
tizen.application.launchAppControl(
appControl,
appid,
function() { console.log("launchUrl success"); },
function(err) { console.log("launchUrl failed: " + err.message); },
appControlReplyCallback
);
} catch(err) {
console.error("[launcher] " + err);
}
But if I try to use this for an intent of a costume app on the phone it's not working as expected.
As far as I interpreted the "adb catlog" of the phone the url from deeplink is used as "intent.setData" what is ok, but I'm not able to set the intents action.
I/HMSAPProviderService( 1327): onDataAvailable() channelId=103, data [{ "msgId" : "mgr_install_host_app_req", "pkg_name" : "----------", "download_type" : "gear", "deeplink_url" : "my.intent.data://v1.0/52.52164,13.41087" }]
I/ActivityManager( 901): START u0 {act=android.intent.action.VIEW dat=my.intent.data://v1.0/52.52164,13.41087 flg=0x10000000 (has extras)} from uid 10214 on display 0
D/Instrumentation( 1327): checkStartActivityResult :Intent { act=android.intent.action.VIEW dat=my.intent.data://v1.0/52.52164,13.41087 flg=0x10000000 (has extras) }
D/Instrumentation( 1327): checkStartActivityResult inent is instance of inent:
W/System.err( 1327): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=my.intent.data://v1.0/52.52164,13.41087 flg=0x10000000 (has extras) }
W/System.err( 1327): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1801)
W/System.err( 1327): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1499)
W/System.err( 1327): at android.app.ContextImpl.startActivity(ContextImpl.java:1545)
W/System.err( 1327): at android.app.ContextImpl.startActivity(ContextImpl.java:1527)
W/System.err( 1327): at android.content.ContextWrapper.startActivity(ContextWrapper.java:337)
W/System.err( 1327): at com.samsung.android.hostmanager.jsoncontroller.PMJSONReceiver.handleInstallHostAppRequest(PMJSONReceiver.java:3308)
W/System.err( 1327): at com.samsung.android.hostmanager.jsoncontroller.PMJSONReceiver.onDataAvailable(PMJSONReceiver.java:234)
W/System.err( 1327): at com.samsung.android.hostmanager.jsoncontroller.JSONController.onDataAvailable(JSONController.java:49)
W/System.err( 1327): at com.samsung.android.hostmanager.service.HMSAPProviderService.onDataAvailable(HMSAPProviderService.java:493)
W/System.err( 1327): at com.samsung.android.hostmanager.connection.HMSAPSASocket.onReceive(HMSAPSASocket.java:352)
W/System.err( 1327): at com.samsung.android.sdk.accessory.SASocket$ChannelCallback.onRead(SASocket.java:637)
W/System.err( 1327): at com.samsung.accessory.api.SAServiceChannel$EventCallBackResultReceiver.onReceiveResult(SAServiceChannel.java:225)
W/System.err( 1327): at android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:50)
W/System.err( 1327): at android.os.Handler.handleCallback(Handler.java:739)
W/System.err( 1327): at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err( 1327): at android.os.Looper.loop(Looper.java:145)
W/System.err( 1327): at android.os.HandlerThread.run(HandlerThread.java:61)
So the line with
I/ActivityManager( 901): START u0 {act=android.intent.action.VIEW dat=my.intent.data://v1.0/52.52164,13.41087 flg=0x10000000 (has extras)} from uid 10214 on display 0
shows that it's trying to use "act=android.intent.action.VIEW" as action, but I should be something like "act=com.my.app.DOSOMETHING".
Does anybody know if it is even possible to use/call android intents from a Gear device?
The main goal is to use already implemented intents from an Android App in a wearable companion app. Otherwise we need to implement the also in our SAP communication. But it would be nice to use some of the already implemented stuff.
Regards
Stephan