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.