Android - Telefonanrufe
Android bietet integrierte Anwendungen für Telefonanrufe. In einigen Fällen müssen wir möglicherweise über unsere Anwendung telefonieren. Dies könnte leicht erreicht werden, indem implizite Absichten mit geeigneten Aktionen verwendet werden. Wir können auch die Klassen PhoneStateListener und TelephonyManager verwenden, um die Änderungen in einigen Telefoniezuständen auf dem Gerät zu überwachen.
In diesem Kapitel werden alle einfachen Schritte zum Erstellen einer Anwendung aufgeführt, mit der Sie einen Anruf tätigen können. Sie können Android Intent verwenden, um Anrufe zu tätigen, indem Sie die integrierte Telefonanruffunktion des Android aufrufen. Im folgenden Abschnitt werden verschiedene Teile unseres Intent-Objekts erläutert, die zum Tätigen eines Anrufs erforderlich sind.
Absichtsobjekt - Aktion zum Tätigen eines Telefonanrufs
Du wirst benutzen ACTION_CALLAktion zum Auslösen der integrierten Telefonanruffunktion, die auf dem Android-Gerät verfügbar ist. Es folgt eine einfache Syntax zum Erstellen einer Absicht mit der Aktion ACTION_CALL
Intent phoneIntent = new Intent(Intent.ACTION_CALL);
Sie können verwenden ACTION_DIAL Aktion anstelle von ACTION_CALL. In diesem Fall haben Sie die Möglichkeit, die fest codierte Telefonnummer zu ändern, bevor Sie einen Anruf tätigen, anstatt einen direkten Anruf zu tätigen.
Absichtsobjekt - Daten / Typ zum Telefonieren
Um einen Anruf unter einer bestimmten Nummer 91-000-000-0000 zu tätigen, müssen Sie angeben tel: als URI unter Verwendung der setData () -Methode wie folgt -
phoneIntent.setData(Uri.parse("tel:91-000-000-0000"));
Der interessante Punkt ist, dass Sie zum Tätigen eines Telefongesprächs keine zusätzlichen Daten oder Datentypen angeben müssen.
Beispiel
Das folgende Beispiel zeigt Ihnen in der Praxis, wie Sie mit Android Intent die angegebene Handynummer anrufen.
Um mit diesem Beispiel zu experimentieren, benötigen Sie ein aktuelles Mobilgerät, das mit dem neuesten Android-Betriebssystem ausgestattet ist. Andernfalls müssen Sie mit dem Emulator kämpfen, der möglicherweise nicht funktioniert.
Schritt | Beschreibung |
---|---|
1 | Mit der Android Studio-IDE erstellen Sie eine Android-Anwendung und benennen sie unter dem Paket com.example.saira_000.myapplication als Meine Anwendung . |
2 | Ändern src / MainActivity.java Datei und fügen Sie erforderlichen Code darauf zu achten , einen Anruf zu machen. |
3 | Ändern Sie die Layout-XML-Datei res / layout / activity_main.xml und fügen Sie bei Bedarf eine beliebige GUI-Komponente hinzu. Ich füge eine einfache Schaltfläche zur Rufnummer 91-000-000-0000 hinzu |
4 | Es ist nicht erforderlich, Standardzeichenfolgenkonstanten zu definieren. Android Studio kümmert sich um Standardkonstanten. |
5 | Modify AndroidManifest.xml wie unten gezeigt |
6 | Führen Sie die Anwendung aus, um den Android-Emulator zu starten, und überprüfen Sie das Ergebnis der in der Anwendung vorgenommenen Änderungen. |
Es folgt der Inhalt der geänderten Hauptaktivitätsdatei src/MainActivity.java.
package com.example.saira_000.myapplication;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.buttonCall);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:0377778888"));
if (ActivityCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
return;
}
startActivity(callIntent);
}
});
}
}
Es folgt der Inhalt von res/layout/activity_main.xml Datei -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/buttonCall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="call 0377778888" />
</LinearLayout>
Es folgt der Inhalt von res/values/strings.xml zwei neue Konstanten definieren -
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My Application</string>
</resources>
Es folgt der Standardinhalt von AndroidManifest.xml - -
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.saira_000.myapplication" >
<uses-permission android:name="android.permission.CALL_PHONE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.saira_000.myapplication.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Lassen Sie uns versuchen, Ihre auszuführen My ApplicationAnwendung. Ich gehe davon aus, dass Sie Ihr aktuelles Android Mobile-Gerät mit Ihrem Computer verbunden haben. Um die App von Android Studio aus auszuführen, öffnen Sie eine der Aktivitätsdateien Ihres Projekts und klicken Sie in
Jetzt benutzen Call Taste zum Telefonieren wie unten gezeigt -