Saltar al contenido

Llamadas VoIP en Android

Pushwoosh es compatible con notificaciones de llamadas estilo VoIP para Android utilizando el módulo pushwoosh-calls. Esto habilita la interfaz de usuario de llamadas nativa y la gestión del ciclo de vida utilizando la pila de telecomunicaciones de Android.

1. Añade el módulo pushwoosh-calls

Anchor link to

Asegúrate de incluir la dependencia pushwoosh-calls en tu proyecto.

Gradle:

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

Reemplaza <latest-version> con la versión actual de Maven Central.

2. Solicita permisos de llamada

Anchor link to

Solicita los permisos necesarios en tiempo de ejecución utilizando la función de ayuda:

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

Esto se encarga de solicitar permisos como READ_PHONE_NUMBERS, necesarios para el manejo adecuado de las llamadas.

3. Implementa CallEventListener y regístralo en el Manifest

Anchor link to

Para manejar llamadas entrantes y eventos, implementa la interfaz CallEventListener en tu aplicación.

Ejemplo en Java

Anchor link to
public class DemoCallEventListener implements CallEventListener {
@Override
public void onAnswer(@NonNull PushwooshVoIPMessage voIPMessage, int videoState) {
// implementa este método para navegar a tu interfaz de usuario en llamada
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
@Override
public void onReject(@NonNull PushwooshVoIPMessage voIPMessage) {
// sobrescribe este método para manejar llamadas rechazadas
}
@Override
public void onDisconnect(@NonNull PushwooshVoIPMessage voIPMessage) {
// sobrescribe este método para manejar llamadas desconectadas
}
@Override
public void onCreateIncomingConnection(@Nullable Bundle payload) {
// este es el punto más temprano en el que el payload de la notificación de llamada es accesible en tu aplicación,
// úsalo para preparar la interfaz de usuario de tu aplicación para las interacciones del usuario con las notificaciones de llamada
}
@Override
public void onCallAdded(@NonNull PushwooshVoIPMessage voIPMessage) {
// método de extensión de InCallService, proporciona opciones de personalización para dispositivos Wearable emparejados
}
@Override
public void onCallRemoved(@NonNull PushwooshVoIPMessage voIPMessage) {
// método de extensión de InCallService, proporciona opciones de personalización para dispositivos Wearable emparejados
}
}

AndroidManifest.xml

Anchor link to

Declara tu clase de escucha usando una etiqueta <meta-data>:

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

4. Configura los ajustes de llamada (opcional)

Anchor link to

Usa PushwooshCallSettings para ajustar el comportamiento de las llamadas, los sonidos y la configuración de visualización.

Ejemplo de uso

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")

Enlaces relacionados

Anchor link to