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_DIALAbsicht.
Wie oben erwähnt, ist die Verwendung von @ashishduh android:autoLink="phoneauch 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 +2348034448845wird
<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);
}
});