Vai al contenuto

Android

GitHub

Su Android, il plugin invia una notifica di chiamata in arrivo ad alta priorità e può avviare un'attività a tutto schermo, se consentito dalle impostazioni della piattaforma e dell'utente.

Il manifest del plugin include già:

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

Dopo l'installazione, cap sync è sufficiente integrare questa configurazione nella tua app host.

Chiama questi metodi durante l'onboarding o prima di fare affidamento sulla visualizzazione della chiamata in arrivo:

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.requestPermissions();
await IncomingCallKit.requestFullScreenIntentPermission();
  • requestPermissions() richiede il permesso per le notifiche su Android 13 e versioni successive.
  • requestFullScreenIntentPermission() apre la pagina delle impostazioni di Android 14 e successivi per gli intent a tutto schermo quando necessario.
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: identificatore per il canale di notifica
  • channelName: nome del canale visibile all'utente
  • showFullScreen: richiede l'attività a tutto schermo
  • isHighPriority: mantiene la notifica abbastanza invasiva per la suoneria
  • accentColor: superfici di notifica compatibili con il tinting
  • ringtoneUri: punta a una risorsa o URI di una suoneria Android personalizzata
  • La visualizzazione a tutto schermo è best-effort. Se il dispositivo o le impostazioni utente la bloccano, Android mostra comunque la notifica di chiamata in arrivo.
  • La gestione del timeout è best-effort. Il plugin monitora timeoutMs ed emette callTimedOut, ma il tuo backend dovrebbe comunque riconciliare le chiamate perse dalla sua parte.
  • Le azioni di accettazione, rifiuto e chiusura vengono emesse tramite i listener di Capacitor, così la tua app può gestire correttamente la sessione di chiamata reale.

Usa i push Android o il tuo SDK per le chiamate come trasporto, poi lascia che questo plugin gestisca l'ultimo miglio della UI nativa di squillo. Mantieni queste responsabilità fuori dal plugin:

  • Registrazione FCM e gestione dei token
  • Ciclo di vita della media session
  • Stato della chiamata lato backend
  • Logica di business per retry e chiamate perse

Se stai usando Android per pianificare il comportamento dei media nativi e dell'interfaccia, collegalo a Utilizzo di @capgo/capacitor-incoming-call-kit per la funzionalità nativa in Usare @capgo/capacitor-incoming-call-kit, Uso di @capgo/capacitor-live-activities per la funzionalità nativa nella pagina Uso di @capgo/capacitor-live-activities, @capgo/capacitor-live-activities per il dettaglio implementativo in @capgo/capacitor-live-activities, Uso di @capgo/capacitor-video-player per la funzionalità nativa nella pagina Uso di @capgo/capacitor-video-player, e @capgo/capacitor-video-player per il dettaglio implementativo in @capgo/capacitor-video-player.