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 toAsegú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 toSolicita 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 toPara manejar llamadas entrantes y eventos, implementa la interfaz CallEventListener en tu aplicación.
Ejemplo en Java
Anchor link topublic 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 toDeclara 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 toUsa PushwooshCallSettings para ajustar el comportamiento de las llamadas, los sonidos y la configuración de visualización.
Ejemplo de uso
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")