Fico feliz em vê-lo aqui! Neste tutorial, vamos explorar duas funcionalidades muito importantes no Xamarin: como gerenciar a discagem telefônica e como enviar SMS. Aprenderemos como usá-los por meio das APIs que o Xamarin.Essentials nos fornece. 💚

Hoje em dia é útil integrar chamadas telefônicas e interações de SMS em nossos aplicativos para fazer um produto que cubra pelo menos as funcionalidades básicas do usuário. Dessa forma, os usuários podem permanecer nos aplicativos sem a necessidade de sair de um aplicativo para enviar uma mensagem ou fazer uma ligação.

Anteriormente, tínhamos que adicionar dois pacotes NuGet -um para chamadas e outro para SMS-o que era complicado e demorado. Agora, podemos criar um discador de telefone de uma forma muito mais fácil. Vamos começar explicando como usar o discador do telefone e, em seguida, SMS.

O que é Xamarin.Essentials?

Xamarin.Essentials fornece uma plataforma cruzada API de desenvolvedor para seus aplicativos móveis e nos permite desenvolver em todo o ambiente Xamarin Forms, Android, iOS ou UWP.

Ótimo! Então, quais funcionalidades/APIs o Xamarin.Essentials oferece? Existem vários, como SMS, acelerômetro, discador, preferências e muitos outros. Se você deseja aprender sobre todos eles e como implementar cada um, eu recomendo este artigo , onde você terá o guia de recursos para cada funcionalidade.

Configuração do Xamarin.Essentials em plataformas específicas

É importante saber que o Xamarin.Essentials oferece suporte a uma versão mínima do Android 4.4, correspondente à API de nível 19, mas a versão do Android de destino para compilar deve ser 9.0 ou 10.0, correspondendo à API de nível 28 e nível 29.

Se você estiver atualizado, o Xamarin.Essentials já foi adicionado aos seus projetos, então você não precisa de uma configuração adicional neste momento.

Se você tiver uma versão mais antiga e o Xamarin.Essentials não estiver funcionando bem, você pode verifique se tudo está correto com a sua implementação nos documentos .

Primeiros passos com Xamarin.Essentials

🔧 Configurações da plataforma

Em alguns casos, cada plataforma precisa de uma configuração adicional para tornar a implementação eficaz. Neste caso, a configuração só é necessária para Android. Vamos definir todas as configurações necessárias para usar o discador do telefone e SMS.

Primeiro, abra o arquivo MainActivity.xml do seu projeto Android e, dentro do nó do manifesto, adicione o seguinte código:

📞 Discador do telefone:

     
 

📥 SMS:

     
 

É importante verificar sua versão alvo do Android. Para fazer isso, basta seguir as próximas etapas: Configur Etapas para configurar seu projeto Android com discador telefônico e SMS

Como mostra a imagem acima, aplique as seguintes etapas:

  1. Vá para o seu projeto Android
  2. Clique com o botão direito no projeto e vá para Opções
  3. Vá para Aplicativos Android
  4. Vá para a Versão de destino do Android e defina “Android 9.0” (API de nível 28) como padrão

Se a sua versão alvo do Android estiver configurada para Android 11, você deve atualizar o seu manifesto Android com consultas que são usadas com o novo requisitos de visibilidade do pacote .

Ambos iOS e UWP não requerem configuração adicional.

Fazendo chamadas com Xamarin.Essentials

Para fazer chamadas, temos uma classe PhoneDialer , que nos permite abrir o discador do número do telefone.

Internamente, quando usamos esta API, ela formata o número do telefone com base no seu país de origem para quando aparece no teclado do telefone.
Smartphone Number Dialer API

Vamos ver a estrutura a ser implementada:
Código para discador do telefone e chave de legenda colorida

Primeiro, criamos o método para chamadas que podem receber o parâmetro do número de telefone e tem o nome PlacePhoneCall . A seguir, adicionamos a classe mais importante desta explicação, que é PhoneDialer . Esta classe nos permite abrir o teclado numérico de nossos telefones.

Finalmente, com o método Open , adicionamos o número de telefone que queremos que seja exibido quando o teclado numérico for aberto. (Já solicitamos essas informações no método pai chamado PlacePhoneCall .)

Aqui está o exemplo de código:

 public void PlacePhoneCall (número da string) { PhoneDialer.Open (número); }

Feito! Nosso discador está pronto! 🌟

Enviando SMS com Xamarin.Essentials

A classe SMS nos permite abrir o quadro de mensagens por meio do método ComposeAsync , que recebe um valor SmsMessage como parâmetro.

A mensagem SMS recebe o corpo e o (s) destinatário (s) como valores, como: Mensagem SMS de smartphone composer

Agora vamos ver a estrutura gráfica:
Código para mensagem SMS e chave de legenda colorida

Neste exemplo, criamos o método SendSms no qual podemos adicionar a classe para enviar o SMS. Receberemos os parâmetros do texto SMS e os destinatários.

Dentro do método criado anteriormente, adicionamos a classe Sms , que se encarrega de abrir o quadro de mensagens com o texto desejado.

Finalmente, adicionamos o método ComposeAsync , que receberá a mensagem que você deseja apresentar. Observe que estamos usando um método assíncrono. Se você quiser saber mais informações sobre este tópico, verifique este artigo .

⚠ Observe que a variável da mensagem é do tipo SmsMessage , que é responsável por receber o texto da mensagem. Posteriormente, os destinatários serão enviados no método ComposeAsync . Você verá este exemplo na implementação de código adicionada abaixo.

Aqui está um exemplo de código:

 public async Task SendSms (string messageText, string destinatário) { var mensagem=novo SmsMessage (messageText, novo [] {destinatário}); aguardar Sms.ComposeAsync (mensagem); } 

Se quiser enviar SMS para mais de um usuário, você pode! Para fazer isso, você deve alterar o tipo de parâmetro por uma matriz de string:

 public async Task SendSms (string messageText, string [] destinatários) { var mensagem=novo SmsMessage (texto da mensagem, destinatário); aguardar Sms.ComposeAsync (mensagem); }

Feito! Nosso SMS está pronto! 🌟 Obrigado por ler!

A postagem Usando Xamarin.Essentials para gerenciar chamadas e SMS apareceu primeiro no LogRocket Blog .