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 toStellen 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 toFordern 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 toUm eingehende Anrufe und Ereignisse zu behandeln, implementieren Sie die Schnittstelle CallEventListener in Ihrer App.
Java-Beispiel
Anchor link topublic 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 toDeklarieren 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 toVerwenden Sie PushwooshCallSettings, um das Anrufverhalten, die Töne und die Anzeigeeinstellungen fein abzustimmen.
Anwendungsbeispiel
Anchor link toimport 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")