darryncampbell/darryncampbell-cordova-plugin-intent

Possible to send custom android.intent.action.START_SOS intent ?

Closed this issue · 6 comments

Hello,

I'm quite new to Ionic, trying to make some experimentations with intents ; so this may be a simple / silly question, if so, I apologize in advance.

I'm using a phone that has a programmable hardware button ; you can select which action is linked to this button. The manufacturer of this phone has developped a custom SOS application, by default linked to this button ; when you press the button, it launches this SOS feature.

My goal is to be able to launch this SOS application from my own Ionic app (i.e., launch a SOS from my app).

For this, I have observed how this is done, and I have found a special intent for this : android.intent.action.START_SOS.
This intent is fired when the SOS feature is launched.

So here is my question : can I launch this intent using this plugin?

I have tried a few things, but nothing works for now.

const options = {
      action: "android.intent.action.START_SOS",
    };
this.webIntent.startActivity(options).then(this.onSuccess, this.onError);

When doing this, the error handler is called, but I don't know how to get more info.

Can you help?

Regards

What is the error? Your onError handler should take a single parameter - try logging that to the console.

Hello, thanks for helping.

Like this ?

onError(e){
    console.log(e);
  }

I get Error in the log.

That's not the most descriptive error is it(?!) but it looks to be coming from https://github.com/darryncampbell/darryncampbell-cordova-plugin-intent/blob/master/src/android/IntentShim.java#L427 which indicates that the Intent could not be resolved. Are you sure that's the right action? Usually to launch an app you use ACTION_VIEW, https://developer.android.com/reference/android/content/Intent#ACTION_VIEW

I agree this is not the most descriptive error :)

Actually I have no idea if what I want can be achieved ; I have observed in logs (adb logcat) that this intent is fired, but I have no idea if I can fire it or not. I have no control or further info about this intent's app.

Do you have any advice for me to go further on this?

Thanks!

If it was me I'd probably write a native app to find out how to format the Intent to invoke the SOS app before trying to do the equivalent in Ionic:
https://stackoverflow.com/questions/3422758/start-application-knowing-package-name
https://android.stackexchange.com/questions/28767/view-apps-full-package-name
Then when you know the details of the Intent, invoke the app (something like this):
https://github.com/darryncampbell/plugin-intent-api-exerciser/blob/master/www/js/index.js#L233

Thanks again for your help, I'll try this!