Zum Inhalt springen

VoIP-Anrufe auf Android

Pushwoosh unterstützt VoIP-Anrufbenachrichtigungen für Android über das Modul pushwoosh-calls. Dies ermöglicht eine native Anruf-Benutzeroberfläche und die Verwaltung des Lebenszyklus über den Telecom-Stack von Android.

1. Das Modul pushwoosh-calls hinzufügen

Anchor link to

Stellen Sie sicher, dass Sie die Abhängigkeit pushwoosh-calls in Ihr Projekt aufnehmen.

Gradle:

dependencies {
implementation 'com.pushwoosh:pushwoosh-calls:<latest-version>'
}

Ersetzen Sie <latest-version> durch die aktuelle Version aus Maven Central.

2. Anrufberechtigungen anfordern

Anchor link to

Fordern Sie die erforderlichen Berechtigungen zur Laufzeit mit der Hilfsfunktion an:

import com.pushwoosh.calls.PushwooshCallSettings;
PushwooshCallSettings.requestCallPermissions();

Dies kümmert sich um die Anforderung von Berechtigungen wie READ_PHONE_NUMBERS, die für die ordnungsgemäße Anrufbehandlung erforderlich sind.

3. CallEventListener implementieren und im Manifest registrieren

Anchor link to

Um eingehende Anrufe und Ereignisse zu behandeln, implementieren Sie die Schnittstelle CallEventListener in Ihrer App.

Java-Beispiel

Anchor link to
public class DemoCallEventListener implements CallEventListener {
@Override
public void onAnswer(@NonNull PushwooshVoIPMessage voIPMessage, int videoState) {
// Implementieren Sie diese Methode, um zu Ihrer Anruf-Benutzeroberfläche zu navigieren
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
@Override
public void onReject(@NonNull PushwooshVoIPMessage voIPMessage) {
// Überschreiben Sie diese Methode, um abgelehnte Anrufe zu behandeln
}
@Override
public void onDisconnect(@NonNull PushwooshVoIPMessage voIPMessage) {
// Überschreiben Sie diese Methode, um getrennte Anrufe zu behandeln
}
@Override
public void onCreateIncomingConnection(@Nullable Bundle payload) {
// Dies ist der früheste Zeitpunkt, zu dem die Payload der Anrufbenachrichtigung in Ihrer App zugänglich ist,
// verwenden Sie sie, um Ihre App-UI auf Benutzerinteraktionen mit Anrufbenachrichtigungen vorzubereiten
}
@Override
public void onCallAdded(@NonNull PushwooshVoIPMessage voIPMessage) {
// Erweiterungsmethode von InCallService, bietet Anpassungsoptionen für gekoppelte Wearable-Geräte
}
@Override
public void onCallRemoved(@NonNull PushwooshVoIPMessage voIPMessage) {
// Erweiterungsmethode von InCallService, bietet Anpassungsoptionen für gekoppelte Wearable-Geräte
}
}

AndroidManifest.xml

Anchor link to

Deklarieren Sie Ihre Listener-Klasse mit einem <meta-data>-Tag:

<meta-data
android:name="com.pushwoosh.CALL_EVENT_LISTENER"
android:value="com.pushwoosh.demoapp.DemoCallEventListener" />

4. Anrufeinstellungen konfigurieren (optional)

Anchor link to

Verwenden Sie PushwooshCallSettings, um das Anrufverhalten, die Töne und die Anzeigeeinstellungen fein abzustimmen.

Anwendungsbeispiel

Anchor link to
import com.pushwoosh.calls.PushwooshCallSettings
PushwooshCallSettings.setPhoneAccount("com.pushwoosh.voip")
PushwooshCallSettings.setPhoneAccountHandle("PushwooshCallHandle")
PushwooshCallSettings.setIncomingCallChannelName("Incoming Calls")
PushwooshCallSettings.setOngoingCallChannelName("Ongoing Calls")
PushwooshCallSettings.setCallSound("custom_ringtone.mp3")
Anchor link to