Pular para o conteúdo

Chamadas VoIP no Android

O Pushwoosh suporta notificações de chamada no estilo VoIP para Android usando o módulo pushwoosh-calls. Isso permite a UI de chamada nativa e o gerenciamento do ciclo de vida usando a pilha de telecomunicações do Android.

1. Adicione o módulo pushwoosh-calls

Anchor link to

Certifique-se de incluir a dependência pushwoosh-calls em seu projeto.

Gradle:

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

Substitua <latest-version> pela versão atual do Maven Central.

2. Solicite permissões de chamada

Anchor link to

Solicite as permissões necessárias em tempo de execução usando a função auxiliar:

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

Isso lida com a solicitação de permissões como READ_PHONE_NUMBERS, necessárias para o tratamento adequado de chamadas.

3. Implemente o CallEventListener e registre-o no Manifest

Anchor link to

Para lidar com chamadas e eventos recebidos, implemente a interface CallEventListener em seu aplicativo.

Exemplo em Java

Anchor link to
public class DemoCallEventListener implements CallEventListener {
@Override
public void onAnswer(@NonNull PushwooshVoIPMessage voIPMessage, int videoState) {
// implemente este método para navegar para a sua UI de chamada
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
@Override
public void onReject(@NonNull PushwooshVoIPMessage voIPMessage) {
// substitua este método para lidar com chamadas rejeitadas
}
@Override
public void onDisconnect(@NonNull PushwooshVoIPMessage voIPMessage) {
// substitua este método para lidar com chamadas desconectadas
}
@Override
public void onCreateIncomingConnection(@Nullable Bundle payload) {
// este é o ponto mais cedo em que o payload da notificação de chamada está acessível em seu aplicativo,
// use-o para preparar a UI do seu aplicativo para interações do usuário com as notificações de chamada
}
@Override
public void onCallAdded(@NonNull PushwooshVoIPMessage voIPMessage) {
// método de extensão do InCallService, fornece opções de personalização para dispositivos Wearable pareados
}
@Override
public void onCallRemoved(@NonNull PushwooshVoIPMessage voIPMessage) {
// método de extensão do InCallService, fornece opções de personalização para dispositivos Wearable pareados
}
}

AndroidManifest.xml

Anchor link to

Declare sua classe de ouvinte usando uma tag <meta-data>:

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

4. Configure as definições de chamada (opcional)

Anchor link to

Use PushwooshCallSettings para ajustar o comportamento da chamada, sons e configurações de exibição.

Exemplo de uso

Anchor link to
import com.pushwoosh.calls.PushwooshCallSettings
PushwooshCallSettings.setPhoneAccount("com.pushwoosh.voip")
PushwooshCallSettings.setPhoneAccountHandle("PushwooshCallHandle")
PushwooshCallSettings.setIncomingCallChannelName("Chamadas Recebidas")
PushwooshCallSettings.setOngoingCallChannelName("Chamadas em Andamento")
PushwooshCallSettings.setCallSound("custom_ringtone.mp3")
Anchor link to