Android Enviar SMS

Neste artigo, vamos orientá-lo nas etapas para adicionar o recurso de envio de SMS do Android ao seu aplicativo.

Como desenvolvedor Android, você pode querer incluir a capacidade de os usuários enviarem mensagens SMS diretamente de seu aplicativo. Felizmente, o Android fornece uma maneira direta de fazer isso usando a classe SmsManager.

O envio de mensagens SMS é uma funcionalidade essencial para muitos aplicativos Android. As mensagens SMS podem ser usadas para uma variedade de funções, desde a verificação OTP até a notificação de eventos importantes aos usuários.

Primeiro, você precisa verificar se o usuário concedeu permissão ao seu aplicativo para enviar mensagens SMS. Você pode fazer isso adicionando a seguinte linha ao arquivo de manifesto do seu aplicativo:

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

Em seguida, você precisará criar uma nova instância da classe SmsManager.



Classe SMSManager

Para usar a classe SmsManager em seu aplicativo Android para enviar mensagens SMS, você precisa começar obtendo uma instância da classe.

Isso pode ser feito usando o método getDefault() , que retorna a instância SmsManager padrão para o dispositivo.

Depois de obter a instância SmsManager, você pode usar o método sendTextMessage() para enviar uma mensagem SMS.

Este método leva quatro argumentos:

 

argumentos Visão geral
O número de telefone de destino Este é o número de telefone do destinatário da mensagem SMS.
O número de telefone do remetente (opcional) Este é o número de telefone do remetente da mensagem SMS. Esse argumento é opcional e, se não for especificado, será usado o número de telefone do remetente padrão.
A mensagem a enviar Esta é a mensagem de texto real que você deseja enviar.
Um PendingIntent a ser invocado quando a mensagem é enviada Este é um argumento opcional que permite especificar um objeto PendingIntent a ser invocado quando a mensagem SMS é enviada.

 

É importante observar que o número de telefone deve estar no formato internacional, que inclui o código do país, seguido do número de telefone sem espaços ou hífens.

Aqui está um exemplo de como usar a classe SmsManager para enviar uma mensagem SMS:

SmsManager smsManager = SmsManager.getDefault();
String phoneNumber = "+1234567890";
String message = "Hello, this is a test message!";
PendingIntent sentIntent = PendingIntent.getBroadcast(this, 0, new Intent("SMS_SENT"), 0);
smsManager.sendTextMessage(phoneNumber, null, message, sentIntent, null);

No exemplo acima, obtemos uma instância da classe SmsManager usando o método getDefault() . Em seguida, especificamos o número de telefone de destino e a mensagem a ser enviada. Também criamos um objeto PendingIntent que será invocado quando a mensagem for enviada.

Finalmente, chamamos o método sendTextMessage() com os argumentos apropriados.

Aqui estão alguns métodos comuns fornecidos pela classe SmsManager no Android:

Métodos Visão geral
getDefault() Retorna a instância SmsManager padrão para este dispositivo.
enviar mensagem de texto() Este método envia uma mensagem de texto SMS para o número de telefone especificado.
enviarMultimediaMessage() Este método envia uma mensagem multimídia (MMS) para o número de telefone especificado .
divideMensagem() Este método divide uma mensagem longa em fragmentos mais curtos que podem ser enviados em várias mensagens SMS.
getDefaultSmsSubscriptionId() Este método retorna o ID de assinatura padrão para mensagens SMS no dispositivo.
getMessagesFromIntent() Este método recupera mensagens SMS de um Intent.
createAppSpecificSmsToken() Este método cria um token específico do aplicativo para enviar mensagens SMS.
isSmsCapable() Este método retorna verdadeiro se o dispositivo for capaz de enviar e receber mensagens SMS.

Android enviar SMS através de classe de intenção

Se você deseja enviar mensagens SMS de seu aplicativo Android, pode usar a classe Intent.

Para começar, crie um Intent com a ação ACTION_SENDTO e o URI de dados “ smsto: ” para especificar o número de telefone para o qual enviar a mensagem SMS. Em seguida, defina o extra “ sms_body ” para especificar a mensagem a ser enviada.

Aqui está um exemplo de como enviar uma mensagem SMS usando a classe Intent:

String phoneNumber = "5556";
String message = "Hello, this is a test message!";
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + phoneNumber));
smsIntent.putExtra("sms_body", message);
startActivity(smsIntent);

O código cria um objeto Intent que envia uma mensagem SMS para um número de telefone específico.

Ele especifica o número de telefone para enviar a mensagem e inclui o conteúdo da mensagem usando o extra “ sms_body ”.

O método startActivity() é chamado para iniciar o aplicativo SMS no dispositivo e enviar a mensagem.


Limitações do uso da intenção de enviar SMS:

Ao usar a classe Intent para enviar mensagens SMS, uma limitação que você pode encontrar é que o usuário precisa enviar manualmente a mensagem do aplicativo SMS.

Isso significa que o usuário pode revisar a mensagem e fazer alterações antes de enviá-la, o que pode ser uma desvantagem se você quiser enviar mensagens programaticamente sem a intervenção do usuário.

Além disso, esse método requer que o usuário tenha um aplicativo de mensagens instalado em seu dispositivo para que funcione corretamente.

Em resumo, existem várias ferramentas disponíveis para enviar mensagens SMS de um aplicativo Android, incluindo a classe SmsManager e a classe Intent. Cada uma dessas ferramentas tem seus próprios pontos fortes e limitações, por isso é importante escolher a ferramenta certa para seu caso de uso específico.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone