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 toCertifique-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 toSolicite 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 toPara lidar com chamadas e eventos recebidos, implemente a interface CallEventListener em seu aplicativo.
Exemplo em Java
Anchor link topublic 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 toDeclare 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 toUse PushwooshCallSettings para ajustar o comportamento da chamada, sons e configurações de exibição.
Exemplo de uso
Anchor link toimport 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")