Saltar al contenido

Android

GitHub

En Android, el plugin envía una notificación de llamada entrante de alta prioridad y puede mostrar una actividad a pantalla completa si la plataforma y la configuración del usuario lo permiten.

El manifiesto del plugin ya incluye:

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />

Tras la instalación, cap sync es suficiente para integrar esa configuración en tu app principal.

Permisos en tiempo de ejecución

Sección titulada “Runtime permissions”

Llama a estos métodos durante el onboarding o antes de depender de la presentación de llamadas entrantes:

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.requestPermissions();
await IncomingCallKit.requestFullScreenIntentPermission();
  • requestPermissions() solicita permiso de notificaciones en Android 13 y versiones posteriores.
  • requestFullScreenIntentPermission() abre la página de ajustes de Android 14 y posteriores para intents a pantalla completa cuando sea necesario.
import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.showIncomingCall({
callId: 'call-42',
callerName: 'Ada Lovelace',
appName: 'Capgo Phone',
timeoutMs: 45_000,
android: {
channelId: 'calls',
channelName: 'Incoming Calls',
showFullScreen: true,
isHighPriority: true,
accentColor: '#0F766E',
},
});
  • channelId: identificador del canal de notificación
  • channelName: nombre del canal visible para el usuario
  • showFullScreen: solicitar la actividad a pantalla completa
  • isHighPriority: mantener la notificación lo suficientemente disruptiva para flujos de llamada
  • accentColor: superficies de notificación compatibles con el tinting
  • ringtoneUri: apuntar a un recurso o URI de tono de llamada personalizado de Android
  • La presentación a pantalla completa es de mejor esfuerzo. Si el dispositivo o la configuración del usuario la bloquean, Android mostrará la notificación de llamada entrante.
  • El manejo de timeouts es de mejor esfuerzo. El plugin rastrea timeoutMs y emite callTimedOut, pero tu backend debería seguir reconciliando las llamadas perdidas por su cuenta.
  • Las acciones de aceptar, rechazar y finalizar se emiten mediante listeners de Capacitor para que tu app pueda unirse a la sesión de llamada real o limpiarla.

Usa push de Android o tu SDK de llamadas como transporte y deja que este plugin se encargue de la última milla de la UI nativa de timbrado. Mantén estas responsabilidades fuera del plugin:

  • Registro de FCM y gestión de tokens
  • Ciclo de vida de la sesión de medios
  • Estado de llamada del backend
  • Lógica de negocio para reintentos y llamadas perdidas

Si estás usando Android para planificar el comportamiento de los medios nativos y la interfaz, conéctalo con Uso de @capgo/capacitor-incoming-call-kit para la capacidad nativa en Uso de @capgo/capacitor-incoming-call-kit, Uso de @capgo/capacitor-live-activities para la capacidad nativa en Uso de @capgo/capacitor-live-activities, @capgo/capacitor-live-activities para los detalles de implementación en @capgo/capacitor-live-activities, Uso de @capgo/capacitor-video-player para la capacidad nativa en Uso de @capgo/capacitor-video-player, y @capgo/capacitor-video-player para el detalle de implementación en @capgo/capacitor-video-player.