Ich muss die Telefonnummer nicht anrufen, sondern nur den Dialer mit der bereits angezeigten Telefonnummer öffnen. Was Intent
soll ich verwenden, um dies zu erreichen?
Ich muss die Telefonnummer nicht anrufen, sondern nur den Dialer mit der bereits angezeigten Telefonnummer öffnen. Was Intent
soll ich verwenden, um dies zu erreichen?
Zwei Möglichkeiten, dies zu erreichen.
1) Der Dialer muss per Code ohne Benutzerinteraktion gestartet werden.
Du brauchst Action_Dial
,
Verwenden Sie den folgenden Code, um Dialer mit der angegebenen Nummer zu öffnen
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent);
Das Präfix 'tel:' ist erforderlich , andernfalls wird die folgende Ausnahme ausgelöst: java.lang.IllegalStateException: Die Methode der Aktivität konnte nicht ausgeführt werden.
Für Action_Dial ist keine Berechtigung erforderlich.
Wenn Sie den Anruf direkt ohne Benutzerinteraktion einleiten möchten , können Sie die Aktion verwenden Intent.ACTION_CALL
. In diesem Fall müssen Sie die folgende Berechtigung in Ihre AndroidManifest.xml einfügen:
<uses-permission android:name="android.permission.CALL_PHONE" />
2) Der Benutzer muss auf die Zeichenfolge Phone_Number klicken und den Anruf starten.
android:autoLink="phone"
Sie müssen TextView mit der folgenden Eigenschaft verwenden.
android: autoLink = "phone" android: linksClickable = "true" eine textView-Eigenschaft
Sie müssen auf diese Weise keine Absicht verwenden oder eine Erlaubnis einholen.
Ziemlich spät bei der Antwort, aber wenn Sie eine haben
TextView
, in der Sie die Telefonnummer anzeigen, müssen Sie sich überhaupt nicht mit Absichten befassen. Sie können einfach das XML-Attribut verwendenandroid:autoLink="phone"
und das Betriebssystem initiiert automatisch eineACTION_DIAL
Absicht.quelle
Okay, es wird eine sehr späte Antwort auf diese Frage sein. Aber hier ist nur ein Beispiel, wenn Sie es in Kotlin tun möchten .
Ich dachte, es könnte jemandem helfen.
quelle
Wie oben erwähnt, ist die Verwendung von @ashishduh
android:autoLink="phone
auch eine gute Lösung. Diese Option hat jedoch einen Nachteil: Sie funktioniert nicht bei allen Telefonnummernlängen. Beispielsweise funktioniert eine Telefonnummer von 11 Nummern mit dieser Option nicht. Die Lösung besteht darin, Ihren Telefonnummern den Ländercode voranzustellen.Beispiel:
08034448845
wird nicht funktionierenaber
+2348034448845
wirdquelle
Auf diese Weise können Sie die dem EditText zugewiesene Nummer direkt auf dem Dialer öffnen.
quelle
Berechtigung im Manifest hinzufügen:
Make-Button oder ein beliebiges Widget-Beispiel:
btnCall
quelle