Comment faire un appel à l'aide d'intention dans Android?
J'utilise le code suivant pour faire un appel à Android, mais elle me donne de l'exception de sécurité s'il vous plaît aider.
posted_by = "111-333-222-4";
String uri = "tel:" + posted_by.trim() ;
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(intent);
autorisations
<uses-permission android:name="android.permission.CALL_PHONE" />
Exception
11-25 14:47:01.661: ERROR/AndroidRuntime(302): Uncaught handler: thread main exiting due to uncaught exception
11-25 14:47:01.681: ERROR/AndroidRuntime(302): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:111-333-222-4 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{43d32508 302:com.Finditnear/10026} (pid=302, uid=10026) requires android.permission.CALL_PHONE
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.os.Parcel.readException(Parcel.java:1218)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.os.Parcel.readException(Parcel.java:1206)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1214)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1373)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.Activity.startActivityForResult(Activity.java:2749)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.Activity.startActivity(Activity.java:2855)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at com.Finditnear.PostDetail$2$1$1$1.onClick(PostDetail.java:604)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:884)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.widget.ListView.performItemClick(ListView.java:3285)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
Intent.ACTION_DIAL
au lieu deIntent.ACTION_CALL
. Cela montre le dialer avec le nombre déjà inscrit, mais permet à l'utilisateur de décider si l'appel ou non.ACTION_DIAL
ne nécessite pas laCALL_PHONE
autorisation.Cette démo sera utile pour vous...
Sur le bouton d'appel, cliquez sur:
Autorisation dans le Manifeste:
Plus élégant option:
Chaque chose est bien.
j'ai juste mis des autorisations d'appel de la balise avant l'application de la balise dans le fichier de manifeste
et maintenant tout fonctionne bien.
Utiliser l'action ACTION_DIAL dans votre intention, de cette façon, vous n'aurez pas besoin de la permission. La raison pour laquelle vous besoin de l'autorisation avec ACTION_CALL est de faire un appel téléphonique, sans aucune action de l'utilisateur.
REMARQUE IMPORTANTE:
Si vous utilisez
Intent.ACTION_CALL
vous devez ajouterCALL_PHONE
autorisation.Sa okey seulement si vous ne voulez pas que votre application à afficher dans l'application google play pour les tablettes qui ne prend pas de carte SIM ou n'a pas de GSM.
DANS VOTRE ACTIVITÉ:
MANIFESTE:
Donc si il n'est pas essentiel à votre application, essayez de rester à l'écart de l'ajout de
CALL_PHONE
autorisation.AUTRE SOLUTION:
Est de montrer l'application Téléphone avec le numéro écrit sur l'écran, de sorte que l'utilisateur aura seulement besoin de cliquer sur le bouton d'appel:
Pas d'autorisation nécessaire pour cela.
La simple oneliner sans les autorisations nécessaires:
utiliser ce code complet
Demande d'Autorisation dans le manifeste
Pour appeler utilisez ce code
Autorisations:
Intention:
Vous pouvez l'utiliser ainsi:
Autorisation AndroidManifest.xml
Code complet:
Pour effectuer un appel à l'activité à l'aide d'intentions, vous devez demander les autorisations appropriées.
Pour vous d'inclure utilise des autorisations dans AndroidManifest.xml fichier.
Puis d'inclure le code suivant dans votre activité
Pour éviter ce - que l'on peut utiliser l'interface graphique pour la saisie des autorisations. Eclipse prendre soin de l'endroit où insérer la permission de la balise et le plus souvent est correct
Dans Android pour certaines fonctionnalités dont vous avez besoin pour ajouter l'autorisation pour le fichier Manifest.
6.Enregistrez le fichier manifeste et exécuter votre projet.
Votre projet devrait maintenant fonctionner comme prévu.
^ La réponse se trouve à l'exception de la sortie "
requires android.permission.CALL_PHONE
" 🙂Pour appeler à partir de dialer (Pas d'autorisation nécessaire):
Pour appel direct à partir de l'app(Autorisation nécessaire):
Autorisation: