Google Android. SMS Short Message Service



Documentos relacionados
Desenv. Para Dispositivos Móveis. Prof. Clayton Almeida

Google Android. Broadcast Receiver

Programação para Android. Aula 10: Acesso a câmera, sms e recursos do aparelho

Desenvolvimento de um aplicativo básico usando o Google Android

Google Android. Intents

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6

Programação para Android. Aula 08: Persistência de dados SQL

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS

ESPECIFICAÇÃO TÉCNICA CIELO MOBILE CHAMADA EXTERNA. Maio de 2015

GUIA DE INTEGRAÇÃO APP2APP APLICATIVO PAGSEGURO 1. Guia de Integração App2App Aplicativo PagSeguro VERSÃO 1.0.0

ESPECIFICAÇÃO TÉCNICA CIELO MOBILE CAIXA RÁPIDO. Julho de 2015

Módulo 2 - Novas Activities Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Programação para Android. Aula 06: Activity, menus e action bar

Aula 30 - Sockets em Java

Exclusão Mútua em Sistemas Distribuídos

JADE : Java Agent DEvelopment Framework JADE

Gerência e Segurança de Redes

Java : Comunicação Cliente-Servidor.

Programação para a Plataforma Android Aula 17. Broadcasts

Exemplo de Aplicaça o Facebook

FTP FILE F TRANSFER PROTOCOL. Tópicos

Programação para Dispositivos Móveis

Android Banco de Dados. Ivan Nicoli

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Desenvolvimento Web com Framework Demoiselle versão 1.0

Sessões. Cookies HTTP Sessões Atributos de sessão

CONECTO. Tecnologia Java. Rua Henrique Setter, 85 Itoupava Central Blumenau SC Página - 1

Prof. Jhonatan Fernando

Comunicando através da rede

Monitoramento de Sistemas P05.002

Programação de Dispositivos Móveis

Programação de Computadores - I. Profª Beatriz Profº Israel

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

insfcanceof new public switch transient while byte continue extends for int null

Um sistema SMS 1 simplificado

Programação para Dispositivos Móveis

Design Patterns (Factory Method, Prototype, Singleton)

SISTEMAS DISTRIBUÍDOS

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Provedores de Conteúdo

Comunicação em Sistemas Distribuídos

Chromecast. Seu aplicativo na TV. Ivan de

AlarmManager. Programação em Dispositivos Móveis (PDM) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Desenvolvimento de um aplicativo básico usando o Google Android

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Threads e Sockets em Java. Threads em Java. Programas e Processos

Trabalho Prático Nº4 Porta Série

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF Novembro/2005

5 Caso de estudo O cartão fidelidade

Especialização em Engenharia de Software - CEUT

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

Construção de um protótipo de comunicação por tecnologia Bluetooth para o servidor Open Simulator

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Log, Ciclo de Vida e Diálogos. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Programação para Dispositivos Móveis

Java Spaces Exemplos

Protocolos de Redes Revisão para AV I

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Como o FIT funciona. FIT: Framework for Integrated Tests FIT. Dados de testes. Programa. Fixtures. classes. Resultados de testes

Visualizador de Mensagens

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Comunicação entre A0vidades

Profº. Enrique Pimentel Leite de Oliveira

Minicurso - Android Fábio Silva / João Paulo Ribeiro

Sistemas Distribuídos

3 SCS: Sistema de Componentes de Software

3 Classes e instanciação de objectos (em Java)

UNIVERSIDADE. Sistemas Distribuídos

Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Data Autor Descrição Revisão Configuração HX600 via Rede Ethernet 1.0

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

O que é o Android? O que é o Android

Arquitetura de Computadores II

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Java 2 Standard Edition Como criar classes e objetos

Seu App na TV: Desenvolvimento para ChromeCast

Sistemas Distribuídos

TRBOnet MDC Console. Manual de Operação

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler

Capítulo II Modelos de Programação Distribuída

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

Capítulo 07: Câmera e Arquivos

TCC Prof.: Leandro A. F. Fernandes Conteúdo: Tipos Genéricos

Conexão Socket na MIDP

Módulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

6127. Redes comunicação de dados. 2014/2015. Acesso à Internet.

Programação para Android. Aula 05: Estilos e temas; galeria de imagens

Transcrição:

SMS Short Message Service

A API Telephony do Android permite monitorar e gerenciar Conexão de Dados, Entrada e Saída de Chamadas, Envio e recebimento de mensagens SMS.

É possível criar o próprio Cliente de SMS, substituindo a aplicação nativa ou construir aplicativos que se comuniquem via SMS. SMS Manager é responsável por possibilitar a reescrita completa de uma aplicação nativa como a de SMS.

SMS em Aplicações Contras Comparado ao uso de IP, o uso de SMS para transmitir dados entre aplicações é baixo; Forma de comunicação cara; Não indicado para sistemas que requerem real-time e que sejam responsivos. Prós Adoção de redes SMS faz com que seja uma alternativa para entrega de conteúdos não android; Reduz a dependências de servidores de terceiros.

Enviando SMS pelo Cliente Nativo Android Disparar Activity com a intenção Intent.ACTION_SENDTO Data sms: numero Extra sms_body: mensagem

Intent smsintent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms:55512345")); smsintent.putextra("sms_body", "Press send to send me"); startactivity(smsintent); SMS Project SMSActivity.java

Implementando o próprio envio de SMS s android.telephony.smsmanager SmsManager smsmanager = SmsManager.getDefault(); String numero = 98502166 ; String mensagem = Olá, Estou te enviando essa msg... ; smsmanager.sendtextmessage(numero, null, mensagem, null, null); <uses-permission android:name="android.permission.send_sms"/>

Tratando Envio e Entrega de SMS s sendtextmessage (String destinationaddress, String scaddress, String text, PendingIntent sentintent, PendingIntent deliveryintent); Parametro Descrição Tipo destinationaddress Endereço do destino String scaddress Endereço central do serviço de rede, por padrão é utilizado null para utilizar SMSC. String text Mensagem a ser enviada String sentintent Broadcast de quando a mensagem é enviada ou o envio falhou deliveryintent Broadcast indicando quando a mensagem é entregue ao destino PendingIntent PendingIntent

String SENT = "SENT_SMS_ACTION"; String DELIVERED = "DELIVERED_SMS_ACTION"; SMS Project PendingIntent sentpi = PendingIntent.getBroadcast(SMSActivity.this, 0, new Intent(SENT), 0); PendingIntent deliveredpi = PendingIntent.getBroadcast( SMSActivity.this, 0, new Intent(DELIVERED), 0); SMSActivity.java

registerreceiver(new BroadcastReceiver() { @Override public void onreceive(context arg0, Intent arg1) { switch (getresultcode()) { case Activity.RESULT_OK: Toast.makeText(SMSActivity.this, "SMS sent, Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: Toast.makeText(SMSActivity.this, "Generic failure, Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_NO_SERVICE: Toast.makeText(SMSActivity.this, "No service, Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_NULL_PDU: Toast.makeText(SMSActivity.this, "Null PDU, Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_RADIO_OFF: Toast.makeText(getBaseContext(), "Radio off, Toast.LENGTH_SHORT).show(); break;, new IntentFilter(SENT)); SMSActivity.java

registerreceiver(new BroadcastReceiver() { @Override public void onreceive(context arg0, Intent arg1) { switch (getresultcode()) { case Activity.RESULT_OK: Toast.makeText(SMSActivity.this, "SMS delivered, Toast.LENGTH_SHORT).show(); break; case Activity.RESULT_CANCELED: Toast.makeText(SMSActivity.this, "SMS not delivered, break;, new IntentFilter(DELIVERED)); Toast.LENGTH_SHORT).show(); SMSActivity.java

Enviar passando os objetos PendingIntents SmsManager sms = SmsManager.getDefault(); sms.sendtextmessage(numero, null, mensagem, sentpi, deliveredpi); SMSActivity.java

Ouvindo recebimento de SMS s Todas as vezes que um SMS é recebido, um novo broadcast Intent é disparado com a ação: android.provider.telephony.sms_received Detalhes da mensagem Extração do PDU para obter os dados

SMS Project <uses-permission android:name="android.permission.receive_sms /> <receiver android:name=.smsreceiver" > <intent-filter> <action android:name="android.provider.telephony.sms_received" /> </intent-filter> </receiver> AndroidManifest.xml

public class SMSReceiver extends BroadcastReceiver { @Override public void onreceive(context context, Intent intent) { if (intent.getaction().equals(sms_received)) { Bundle bundle = intent.getextras(); if (bundle!= null) { Object[] pdus = (Object[]) bundle.get("pdus"); SmsMessage[] messages = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); for (SmsMessage message : messages) { String msg = message.getmessagebody(); String from = message.getoriginatingaddress(); Log.i(SMSReceiver.class.getName(),"Mensagem: "+ msg); Log.i(SMSReceiver.class.getName(),"De: "+ from); SMSReceiver.java

Refatorando o código private SmsMessage[] getmessagefromintent(intent intent) { Bundle bundle = intent.getextras(); if (bundle!= null) { Object[] pdus = (Object[]) bundle.get("pdus"); SmsMessage[] messages = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); return messages; return null; SMSReceiver.java

Refatorando o código private SmsMessage getmessage(intent intent){ SmsMessage[] mensagens = getmessagefromintent(intent); if (mensagens!= null){ return mensagens[0]; return null; SMSReceiver.java

Software Auto-Response Possibilitar o Envio de SMS s; Ao receber um SMS, enviar um SMS de resposta com a mensagem Estou Ocupado, Logo mais te ligo. Ass: Seu Nome.