Appelez automatiquement un numéro prédéfini sur Android avec PhoneGap

J'écris une application à l'aide de PhoneGap et Jquery, dans mon application j'ai un bouton de panique, onclic il faut appeler automatiquement un nombre prédéfini. Je parviens à ouvrir le numéroteur Android natif, mais j'ai encore besoin que l'utilisateur clique à nouveau sur le bouton Envoyer pour composer.

Comment puis-je faire un appel direct de l'application?

Merci!

Vous devrez écrire un plugin pour cette fonctionnalité. La première chose que vous devrez faire est d'ajouter:

android.permission.CALL_PRIVILEGED 

À votre AndroidManifest.xml. Cela vous permettra de composer un numéro en ignorant l'application Dialer. Un petit code JavaScript est requis pour l'interface du plugin:

 cordova.define("cordova/plugin/emergencydialer", function(require, exports, module) { var exec = require("cordova/exec"); var EmergencyDialer = function () {}; var EmergencyDialerError = function(code, message) { this.code = code || null; this.message = message || ''; }; EmergencyDialer.CALL_FAILED = 0; EmergencyDialer.prototype.call = function(telephoneNumber,success,fail) { exec(success,fail,"EmergencyDialer", "call",[telephoneNumber]); }; var emergencyDialer = new EmergencyDialer(); module.exports = emergencyDialer; }); 

Ensuite, vous devrez écrire un code Java pour effectuer un appel téléphonique. Vous devrez créer une nouvelle classe qui étend la classe Plugin et écrivez une méthode d'exécution comme ceci:

 public PluginResult execute(String action, JSONArray args, String callbackId) { PluginResult.Status status = PluginResult.Status.OK; String result = ""; try { if (action.equals("call")) { String number = "tel:" + args.getString(0); Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(number)); this.cordova.getActivity().startActivity(callIntent); } else { status = PluginResult.Status.INVALID_ACTION; } return new PluginResult(status, result); } catch (JSONException e) { return new PluginResult(PluginResult.Status.JSON_EXCEPTION); } } 

Tout ce que vous appelez cette classe, vous devrez ajouter une ligne dans le fichier res / xml / config.xml afin que le PluginManager puisse le créer.

 <plugin name="EmergencyDialer" value="org.apache.cordova.plugins.EmergencyDialer"/> 

Et enfin dans votre code JavaScript, vous devrez créer leur plugin et l'appeler comme ceci:

 function panicButton() { var emergencyDialer = cordova.require("cordova/plugin/emergencydialer"); emergencyDialer.call("18005551212"); } 

Cela devrait être à propos de le faire.

Ce fil est un peu plus ancien, mais il semble que Google soit populaire, alors j'aimerais ajouter qu'il existe maintenant un plugin à l' adresse https://github.com/anemitoff/PhoneGap-PhoneDialer qui se fait. La syntaxe au bas de cette page pour l'installation d'un plugin local semble un peu différente de ce que je suis habitué, mais cela a bien fonctionné avec la syntaxe cordova recommandée pour l'installation de plugins locaux. Si vous n'êtes pas familiarisé avec cela, vous pouvez lire sur l'installation de plugins de diverses sources à http://docs.phonegap.com/fr/4.0.0/guide_cli_index.md.html et nous avons simplement fait quelque chose comme

 cordova plugin add ../plugins/PhoneDialer 

Et cela a bien fonctionné et a été facile à mettre en œuvre!