Como enviar SMS para vários contatos e obter o código de resultado para cada um deles no Android
Introdução
O envio de SMS é uma forma eficaz de se comunicar com várias pessoas ao mesmo tempo. No Android, é possível enviar SMS para vários contatos de forma programática, além de obter o código de resultado para cada mensagem enviada. Neste artigo, abordaremos o processo de envio de SMS para vários contatos e como obter os códigos de resultado correspondentes no Android.
Passo 1: Configurando as permissões
Antes de começar, é importante garantir que as permissões adequadas estejam definidas no arquivo Manifest do aplicativo Android. Você precisará adicionar as seguintes permissões:
xml
Copy code
<uses-permission android:name=”android.permission.SEND_SMS” />
<uses-permission android:name=”android.permission.READ_PHONE_STATE” />
A permissão SEND_SMS permite que o aplicativo envie mensagens SMS, enquanto a permissão READ_PHONE_STATE é necessária para obter o código de resultado de cada mensagem enviada.
Passo 2: Implementando o envio de SMS
Para enviar SMS para vários contatos, você pode usar a classe SmsManager, que fornece métodos para enviar mensagens SMS. Abaixo está um exemplo de código que ilustra como enviar SMS para uma lista de contatos:
java
Copy code
String[] contatos = {“+1234567890”, “+9876543210”};
for (String contato : contatos) {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(contato, null, “Mensagem de exemplo”, null, null);
}
No exemplo acima, a variável “contatos” contém uma lista de números de telefone para os quais você deseja enviar SMS. Em seguida, um loop é usado para enviar a mensagem para cada contato utilizando o método sendTextMessage da classe SmsManager.
Passo 3: Obtendo o código de resultado
Após enviar as mensagens SMS, você pode obter o código de resultado para cada uma delas usando um BroadcastReceiver. O código de resultado indica se a mensagem foi enviada com sucesso ou se ocorreu algum erro. A seguir, um exemplo de como implementar um BroadcastReceiver para obter o código de resultado:
java
Copy code
private BroadcastReceiver smsResultReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int resultCode = getResultCode();
if (resultCode == Activity.RESULT_OK) {
// Mensagem enviada com sucesso
} else {
// Ocorreu um erro no envio da mensagem
}
}
};
No código acima, um BroadcastReceiver é definido para receber o resultado das mensagens SMS enviadas. O método onReceive é chamado quando o resultado é recebido. Dentro desse método, você pode verificar o código de resultado usando getResultCode(). Se o código for Activity.RESULT_OK, significa que a mensagem foi enviada com sucesso. Caso contrário, algum erro ocorreu no envio.
Passo 4: Registrando e desregistrando o BroadcastReceiver
Para que o BroadcastReceiver funcione corretamente, é necessário registrá-lo no momento adequado. Você pode fazer isso no método onResume() da sua atividade e desregistrar no método onPause(). Veja o exemplo a seguir:
java
Copy code
@Override
protected void onResume() {
super.onResume();
registerReceiver(smsResultReceiver, new IntentFilter(“SMS_SENT”));
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(smsResultReceiver);
}
No exemplo acima, o BroadcastReceiver é registrado com a ação “SMS_SENT”, que é enviada quando o resultado de uma mensagem SMS é recebido. É importante garantir que a mesma ação seja usada ao enviar as mensagens SMS.
Conclusão
Enviar SMS para vários contatos no Android pode ser facilmente realizado usando a classe SmsManager. Além disso, obter o código de resultado para cada mensagem enviada permite verificar se o envio foi bem-sucedido. Com as permissões adequadas configuradas e o uso de um BroadcastReceiver, você pode enviar mensagens SMS para vários contatos e obter os códigos de resultado correspondentes de forma programática no Android.