Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.0.4

phone_state_background

Um plugin do Flutter para lidar com o estado da chamada telefônica e executar um retorno de chamada Dart em segundo plano.

Android
Downloads em 30 dias
208
Curtidas
26
Pontos Pub
160

Instalar pacote

flutter pub add phone_state_background

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote phone_state_background é um plugin Flutter projetado para Android que monitora os estados das chamadas telefônicas e dispara callbacks em Dart mesmo quando o aplicativo está em segundo plano. Ele permite que desenvolvedores respondam a chamadas entrantes, saídas ou perdidas executando lógica personalizada sem exigir que o aplicativo esteja ativamente em execução. Isso é particularmente útil para registro de chamadas, análise ou integração com outros serviços durante eventos de chamada. O plugin utiliza receptores de broadcast do Android para manter a funcionalidade mesmo durante mudanças no ciclo de vida do aplicativo.

Casos de uso

  • Registro de chamadas
  • Monitoramento em tempo real de chamadas
  • Tratamento de evento de chamada em segundo plano
  • Integração com serviços de telefonia
  • Resposta automática às mudanças de estado da chamada

Principais recursos

  • Suporte à execução em segundo plano
  • Callback do Dart em mudança de estado da chamada
  • Compatibilidade de plataforma exclusiva para Android
  • Integração simples da API
  • Arquitetura baseada em receptor de broadcast

Indicado para

  • Desenvolvedores de aplicativos de telefonia
  • Aplicativos que precisam de rastreamento de chamadas em segundo plano
  • Chame ferramentas de análise
  • Aplicações móveis orientadas para serviços

Considerações

  • Limitado à plataforma Android
  • Requer permissões corretas no manifesto do Android
  • Pode afetar a vida útil da bateria
  • Restrições de execução em segundo plano em versões mais recentes do Android
  • Sem suporte para iOS

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

phone_state_background

A flutter plugin to handle Phone Call State and execute a Dart callback in background.

Warning

This plugin only supported in android platform.


IOS Implementation

Corrently IOS is not supported. Unfortunately I'm not familiar with IOS development neither with Switf/ObjC languages, so if you wish to help any PR will be welcome.


Android

After importing this plugin to your project as usual, add the following to your AndroidManifest.xml within the <manifest></manifest> tags:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />

Also, apparently it is necessary to register the broadcast receiver manually, otherwise an error will be throw saying that our receiver does not exist inside the app. Within the <application></application> tags:,

<receiver android:name="me.sodipto.phone_state_background.PhoneStateBackgroundServiceReceiver"
    android:exported="false">
    <intent-filter>
        <action android:name="android.intent.action.PHONE_STATE" />
    </intent-filter>
</receiver>

Getting started

All you need to start using our package after installing it, is defining a callback which must be a top level function or static function, that will be called by our plugin when any incoming or outgoing call events are detected.

@pragma('vm:entry-point') // Be sure to annotate your callback function to avoid issues in release mode on Flutter >= 3.3.0 void phoneStateBackgroundCallbackHandler(PhoneStateBackgroundEvent event, String number, int duration)

This callback handler must accept 3 arguments:

  • phoneStateBackgroundEvent: The event type detect by our plugin in background.

  • number: The incoming/outgoin number that is triggering the phone state call.

  • duration: An integer that represents the duration of the call in seconds.

The PhoneStateBackgroundEvent is an enum with four possible values:

Event Value Description
incomingstart Indicates an incoming call.
incomingmissed Indicates an incoming call missed.
incomingreceived Indicates an incoming call received.
incomingend Indicates an incoming call end.
outgoingstart Indicates an outgoing call start.
outgoingend Indicates an outgoing call end.

Since all this process happens in background in a Dart Isolate, there's no guarantee that the current OS will call the registered callback as soon as an event is triggered or that the callback will ever be called at all, each OS handle background services with different policies. Make sure to ask user permission before calling the PhoneStateBackground.initialize method of our plugin. Check the example to see a simple implementation of it.

/// Defines a callback that will handle all background incoming events
@pragma('vm:entry-point') // Be sure to annotate your callback function to avoid issues in release mode on Flutter >= 3.3.0
Future<void> phoneStateBackgroundCallbackHandler(
  PhoneStateBackgroundEvent event,
  String number,
  int duration,
) async {
  switch (event) {
    case PhoneStateBackgroundEvent.incomingstart:
      print('Incoming call start, number: $number, duration: $duration s');
      break;
    case PhoneStateBackgroundEvent.incomingmissed:
      print('Incoming call missed, number: $number, duration: $duration s');
      break;
    case PhoneStateBackgroundEvent.incomingreceived:
      print('Incoming call received, number: $number, duration: $duration s');
      break;
    case PhoneStateBackgroundEvent.incomingend:
      print('Incoming call ended, number: $number, duration $duration s');
      break;
    case PhoneStateBackgroundEvent.outgoingstart:
      print('Ougoing call start, number: $number, duration: $duration s');
      break;
    case PhoneStateBackgroundEvent.outgoingend:
      print('Ougoing call ended, number: $number, duration: $duration s');
      break;
  }
}

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.