Antworten:
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 verwenden android:autoLink="phone"
und das Betriebssystem initiiert automatisch eine ACTION_DIAL
Absicht.
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 funktionieren
aber +2348034448845
wird
<TextView
android:id="@+id/phoneNumber"
android:autoLink="phone"
android:linksClickable="true"
android:text="+91 22 2222 2222"
/>
Auf diese Weise können Sie die dem EditText zugewiesene Nummer direkt auf dem Dialer öffnen.
Berechtigung im Manifest hinzufügen:
<uses-permission android:name="android.permission.CALL_PHONE" />
Make-Button oder ein beliebiges Widget-Beispiel: btnCall
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel: +98990*******");
startActivity(callIntent);
}
});