17/10/13 Como enviar e receber SMS em um Aplicativo Android | Tutoriandroid
www.tutoriandroid.com/2012/05/como-enviar-e-receber-sms-em-um.html 1/6
T U T O R I A N D R O I D
Tutoriais acerca do desenvolvimento de
aplicativos e jogos para Android.
F A C E B O O K B A D G E
Gustavo Carvalho
Create Your Badge
P O S T A G E N S P O P U L A R E S D A S E M A N A
Como publicar no Google Play
Desenvolvendo jogos para Android - Parte 1 -
Criando elementos grficos
Como enviar e receber SMS em um Aplicativo
Android
Como criar Interfaces para o Android - Parte 1
P O S T A G E N S
2012 (27)
Agosto (1)
Julho (5)
Junho (2)
Maio (5)
Como criar um jogo estilo plataforma
Lidando com tarefas pesadas com
AsyncTask
Como fazer uma Splash Screen
Como enviar e receber SMS em um
Aplicativo Android...
Como publicar no Google Play
Abril (3)
Maro (4)
Fevereiro (3)
Janeiro (4)
M A R C A D O R E S
action bar (1)
activity (6)
admob (2)
T E R A - F E I R A , 8 D E M A I O D E 2 0 1 2
Como enviar e receber SMS em um Aplicativo AndroidSMS, que significa Short Message Service (Servio de
Mensagens Curtas), se popularizou nos
dispositivos mveis h bastante tempo e no Brasil ficou
popularmente conhecido como Torpedo. Consiste no
envio de mensagens com at 160 caracteres para um
celular.
Em suas aplicaes para Android voc pode querer ou
precisar fazer uso deste recurso. A plataforma Android
fornece bons mtodos de envio e recebimento de SMS
pela aplicao e isso importante pois alm de poder
enviar um SMS sua aplicao pode ler um SMS e
executar alguma ao a partir dele, ou seja, voc pode
usar SMS para que aplicativos em dispositivos distintos
troquem informaes e executem aes remotamente.
Se voc deseja apenas enviar um SMS simples, onde o
usurio possa modificar a mensagem antes de enviar, escolher da agenda o contato e voc no precisar ter
controle de saber se o SMS foi enviado ou no e nem precisa salvar essas informaes ento o melhor jeito
usar o aplicativo de mensagens do prprio dispositivo do usurio, pois alm de abstrair muito o seu trabalho
como desenvolvedor tambm facilita a vida do usurio oferecendo uma interface que ele j conhece.
Ento o que precisamos fazer apenas chamar o aplicativo de mensagens com o texto que queremos passar
e/ou o nmero:
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address", "NUMERO DO TELEFONE");
smsIntent.putExtra("sms_body","MENSAGEM A SER ENVIADA");
startActivity(smsIntent);
Feito isso a mensagem e nmero passado para outra aplicao e no nos preocupados com o
envio propriamente dito. Usei essa estratgia no aplicativo Mensagens para Celular.
Mas se voc quiser enviar o SMS direto da sua aplicao o processo um pouco mais complexo mas ainda
bastante simples. Primeiro pega-se a instancia do SmsManager:
SmsManager smsManager = SmsManager.getDefault();
Depois utiliza o seguinte comando se voc tiver certeza que sua mensagem ter menos de 160 caracteres:
smsManager.sendTextMessage("07187853344", null, "Mensagem que estou enviando", n
ull, null);
Sendo os parmetros:
Nmero que ir receber o SMS;
"Centro de servio" usado, use null;
A mensagem a ser enviada;
Um PendingIntent que ser "broadcastada" quando o SMS for enviado;
Um PendingIntent que ser "broadcastada" quando o SMS for recebido;
Se voc no tem certeza se sua mensagem ser menor que 160 caracteres use o seguinte mtodo:
smsManager.sendMultipartTextMessage ("07187853344", null, smsManager.divideMessa
ge("Mensagem muito grande que estou enviando"), null, null);
Buscar..
T U T O R I A N D RO I D
Home Apps Contato Sobre
Refil para Purificador degua Puri-Ice, Puritronicou Purimix - LatinaWalmart
S hoje!Oportunidade nica.Grandes Ofertas.
R$55,90
17/10/13 Como enviar e receber SMS em um Aplicativo Android | Tutoriandroid
www.tutoriandroid.com/2012/05/como-enviar-e-receber-sms-em-um.html 2/6
ambiente de desenvolvimento (1)
animation (2)
api 14 (2)
api 7 (2)
app widget (1)
armazenamento (2)
AsyncTask (1)
avanado (6)
background (3)
configuraes (2)
design (1)
game (9)
game engine (3)
google play (2)
handler (2)
imagem (3)
iniciante (7)
intent (3)
interface (1)
intermediario (11)
live wallpaper (1)
menu (2)
mercado (2)
no-tutorial (2)
plataforma (1)
projeto (1)
SharedPreferences (2)
sms (1)
som/musica (2)
splash screen (1)
sprite (3)
SQLite (1)
thread (4)
toast (1)
ui design (1)
ux design (1)
view (2)
I N S C R E V E R - S E
S E G U I D O R E S
Participar deste siteGoogle Friend Connect
Membros (35) Mais
J um membro? Fazer login
O parmetros so os mesmos o que muda agora que usamos uma funo para quebrar a mensagem caso
seja necessrio, e passamos tambm uma lista de PendingIntent ao invs de apenas uma (uma
PendingIntent para cada pedao da mensagem). Usei essa estratgia no aplicativo Amor por SMS.
Para usar esses mtodos necessrio declarar uma permisso no AndroidManifest:
Aproveitando que estamos no AndroidManifest, para receber mensagens necessario declarar:
E declarar tambm o BroadcastReceiver que ir receber a chegada do SMS. Coloque isso antes de
:
Feito isso vamos criar nossa classe SmsReceiver:
public class SmsReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i
17/10/13 Como enviar e receber SMS em um Aplicativo Android | Tutoriandroid
www.tutoriandroid.com/2012/05/como-enviar-e-receber-sms-em-um.html 3/6
s isso. Mas as possibilidades so imensas! Por exemplo, um aplicativo que responde automaticamente com
a posio ao receber um SMS, fazer algum tipo de jogo a 2 usando SMS para comunicao, etc.
POSTADO POR GUSTAV O CARV ALHO S 08:0 0
M ARCADORES: INTENT, INTERM EDIARIO , S M S
2 3 c o m e n t r i o s :
Sandro Ricardo at 22 de agosto de 2012 22:50 disse...
Muito bom tutorial deu certinho aqui. aproveitando gostaria de perdir uma ajuda, como fez pra cria a opcao
enviar para outras midias no seu app amor por sms, quando precionamos a mensagem q desejamos
enviar???
agradeco desde ja
abs
sandro
Gustavo Carvalho at 23 de agosto de 2012 13:26 disse...
@Sandro muito simples. Exemplo:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "Essa a String a ser compartilhada. Substitua pela String que
quiser");
startActivity(Intent.createChooser(intent, getString(R.string.selecionar_midia)));
Thiago at 26 de setembro de 2012 12:28 disse...
fiz como tutorial de envio sms direto testei
, nao esta enviando nao para um numero fictcio no emulador . o que pode ter dado errado? Obg
Gustavo Carvalho at 1 de outubro de 2012 11:21 disse...
@Thiago: No entendi muito bem, mas acho que no tem como enviar sms pelo emulador.
Natural Esttica at 28 de outubro de 2012 13:22 disse...
Este comentrio foi removido pelo autor.
Renan Barbosa at 28 de outubro de 2012 13:24 disse...
Ol Gustavo, timo tutorial, sou iniciante em Android e consegui fazer a aplicao enviar e receber sms,
mas tenho um seguinte problema, eu preciso passar um dado recebido por mensagem para uma
MapActivity, por exemplo, eu recebo um sms com coordenadas de um mapa, ento pego essas coordenadas
na classe BroadcastReceiver e mando para uma Activity que contem um MapView e que ir exibir estas
coordenadas, por um acaso voc teria uma dica que possa me ajudar, j tentei de vrias formas e no
Recomende isto no Google
17/10/13 Como enviar e receber SMS em um Aplicativo Android | Tutoriandroid
www.tutoriandroid.com/2012/05/como-enviar-e-receber-sms-em-um.html 4/6
obtive sucesso. Obrigado.
Gustavo Carvalho at 19 de novembro de 2012 05:44 disse...
@Renan: Ol! Sei que a resposta est um pouco atrasada mas enfim... Voc pode receber sua mensagem
por um BroadcastReceiver e chamar sua Activity e passar as informaes da mensagem atravs dos Extras
da propria Intent usada para chamar a Activity. Alternativamente, se sua activity j estiver rodando, voc
poderia usar o LocalBroadcastManager para mandar uma mensagem especifica para essa Activity, mas
acredito que a primeira opo seja mais o seu caso.
Annimo at 29 de novembro de 2012 09:22 disse...
Descobri esta semana a aplicao CrowdSMS. a ideal para enviar SMS quando estamos assistir um
concerto ou numa festa em que est muita gente e no conseguimos enviar a sms.
(https://play.google.com/store/apps/details?id=pt.vu.carlosfernandes.crowdsms)
Annimo at 30 de novembro de 2012 11:12 disse...
@Felipe Opa excelente post, tenho uma dvida. Gostaria de saber de como seria um enviar email pela app e
seu eu puder abusar um exemplo de como criar um evento pela app, por exemplo quando for dia tal e hora
tal lanar um Toast e vibrar de 20 em 20 min 3 vezes por exemplo seria algo parecido com o alarme s que
o alarme s verifica hora enfim rsrs. Se possvel ok? obrigado.
Gustavo Carvalho at 6 de dezembro de 2012 05:11 disse...
@Annimo: Voc pode enviar e-mail por Intents, isso , seu app vai mandar informaes para que outro app
(como o gmail) mande o email:
/* Create the Intent */
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
/* Fill it with Data */
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Text");
/* Send it off to the Activity-Chooser */
context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
Para enviar diretamente do seu app voc precisaria ter acesso a um servidor de e-mail, e no sei como
seria feito isso exatamente.
Para criar o evento voc pode usar AlarmManager, onde, basicamente, voc programa um pedao de cdigo
(PendingIntent) para ser executado em um determinado momento no futuro.
Gabriel Dilly at 12 de dezembro de 2012 22:04 disse...
Segui os passos mas alguns coisa no deu certo. Voc pode disponibilizar os cdigos s pra eu conferir?
Vlw
Gustavo Carvalho at 16 de dezembro de 2012 07:20 disse...
@Gabriel: O que exatamente voc tentou fazer? No tenho mais o cdigo completo que usei mas todo o
cdigo necessrio est aqui na postagem. Cheque coisas como o AndroidManifest, as vezes so pequenas
coisas que fazem o programa no funcionar.
Gabriel Dilly at 18 de dezembro de 2012 23:38 disse...
@Gustavo: Eu vou revisar de novo os cdigos. Vlw
Concentra Mas No Sai at 11 de maro de 2013 12:45 disse...
17/10/13 Como enviar e receber SMS em um Aplicativo Android | Tutoriandroid
www.tutoriandroid.com/2012/05/como-enviar-e-receber-sms-em-um.html 5/6
Parabns pelo tutorial.
Se for instalado num aparelho, como fica a "concorrncia" com programa de mensagens? Ou seja, ao chegar
uma mensagem, ela ser recebida pelo aplicativo nativo e nessa aplicao?
Obrigado / Marcelo
Gustavo Carvalho at 19 de maro de 2013 09:50 disse...
Ser recebida pelos dois e por mais qualquer app que esteja "ouvindo" novas mensagens.
Annimo at 23 de abril de 2013 01:15 disse...
cara eu no entendi como faz esse aplicativo sou novato algum tem como disponibilizar o projeto?
Annimo at 24 de abril de 2013 12:14 disse...
da para impedir que o recebedor normal de sms do tlm nao receba as sms que nos recebemos no nosso
programa?
Rafael Alk at 29 de abril de 2013 13:01 disse...
Muito obrigado!!
Habbo DCR at 18 de julho de 2013 00:46 disse...
ol, queria saber como selecionar o chip que ser usado para enviar a mensagem caso o aparelho seja dual
sim, ou tenha mais de 2 ou 3 chips... agradeo
Unknown at 20 de julho de 2013 14:35 disse...
funcionou, mas envio as mensagens para meus clientes. o problema que volta e meia aparece a
mensagem "...um grande nmero de mensagens SMS esta sendo enviada..." e trava tudo, como posso
tratar isso?
Elton monteiro at 20 de julho de 2013 19:03 disse...
Gustavo fiz minha aplicao de sms, mas gostaria de implementar algo mais como: bloquear o recebimento
de alguns numeros escolhido pelo usurio! como fao para qnd ele identifica o numero matar o broadCast,
pois a minha notificao eu interrompo mas a nativa mostra! Agradecido desde ja! Abraos
Junior Fa at 24 de julho de 2013 15:44 disse...
Excelente post Gustavo! Uma dvida, consigo salvar um texto na tela de sms do aparelho.
Exemplo: Tenho uma aplicao que ler dados de um banco na web e gostaria de salvar essa mensagem na
tela de sms para que alerte o usuario.
Abraos
Annimo at 25 de julho de 2013 23:31 disse...
Pergunta muito boba, mas por q sou iniciante... onde deve ficar a classe SMSreciver? ela deve ser uma
classe propria, tem que est dentro do codigo fonte do aplicativo ou tanto faz o local? tutorial excelente
bem Objetivo, parabens.
P o s ta r u m c o m e n t r i o
17/10/13 Como enviar e receber SMS em um Aplicativo Android | Tutoriandroid
www.tutoriandroid.com/2012/05/como-enviar-e-receber-sms-em-um.html 6/6
Postagem mais recente Postagem mais antiga
Digite seu comentrio...
Comentar como: Conta do Google
Publicar
Visualizar
L i n k s p a r a e s ta p o s t a g e m
Criar um link
Incio
2011 Tutoriandroid | Recode by Ardhiansyam | Based on Android Developers Blog
Top Related