G-SMS: PROTÓTIPO DE APLICAÇÃO DE ENVIO DE SMS GEOREFERENCIADAS
|
|
- Elisa Martinho Conceição
- 7 Há anos
- Visualizações:
Transcrição
1 UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO G-SMS: PROTÓTIPO DE APLICAÇÃO DE ENVIO DE SMS GEOREFERENCIADAS CARLOS ROBERTO BENDER BLUMENAU /1-10
2 CARLOS ROBERTO BENDER G-SMS: PROTÓTIPO DE APLICAÇÃO DE ENVIO DE SMS GEOREFERENCIADAS Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Ciência da Computação Bacharelado. Prof. Mauro Marcelo Mattos, Dr - Orientador BLUMENAU /1-10
3 G-SMS: PROTÓTIPO DE APLICAÇÃO DE ENVIO DE SMS GEOREFERENCIADAS Por CARLOS ROBERTO BENDER Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por: Presidente: Membro: Membro: Prof. Mauro Marcelo Mattos, Dr Orientador, FURB Prof. Francisco Adell Péricas, Mestre FURB Prof. Sérgio Stringari, Mestre FURB Blumenau, 27 de junho de 2011
4 Dedico este trabalho a todos os amigos, familiares e colegas pelo incentivo, cooperação e apoio durante a realização deste.
5 AGRADECIMENTOS A minha família que sempre me ajudou e me apoiou em todas as etapas de minha vida. Aos meus amigos, pela paciência, em especial aos que sempre estiveram ao meu lado para ouvir mesmo sem entender o assunto. Ao meu orientador, Mauro Marcelo Mattos, por ter me ajudado em todas as necessidades e pela atenção. E a todos que direta ou indiretamente me apoiaram e ajudaram para que este trabalho fosse possível.
6 A ambição é o puro senso de dever pois a si só não produz frutos realmente importantes para a pessoa humana, pelo contrário os frutos verdadeiros derivam do amor e da dedicação para com as pessoas e as coisas. Albert Einstein
7 RESUMO Este trabalho descreve o desenvolvimento de um protótipo de uma aplicação de envio de SMS georeferenciadas para smartphones. Utiliza a disponibilidade de GPS e internet para obter a localização do aparelho e carregar os mapas. O usuário também pode escolher a localização utilizando a funcionalidade de Long Press. O SMS enviado pelo protótipo contém uma URL para o Google Maps com valores de latitude e longitude da localização. O uso da plataforma Android e da API Google Maps foram necessários para implementação deste protótipo. Palavras-chave: Android. Georreferenciamento. SMS. Google Maps.
8 ABSTRACT This paper describes the implementation of geotagged SMS application prototype for smartphones. It uses GPS and internet availability to get the device s location and load maps. The user also can pick a location using long press functionality. The SMS sent contains an URL for the Google Maps with latitude and longitude values of the location. The use of Android platform and Google Maps Api were necessary to implement this application. Key-words: Android. Geotagged. SMS. Google Maps.
9 LISTA DE ILUSTRAÇÕES Figura 1: Arquitetura geral da plataforma Android Quadro 1 - Exemplo de arquivo XML que define layout de uma tela Quadro 2 Exemplo de arquivo R.java Figura 2 - Aplicativo Flutter para Iphone Figura 3 - Google Latitude em versões para Android, RIM e ios Figura 4 - Telas da aplicação I am here Figura 5 - Casos de uso da aplicação G-SMS Quadro 3 - Caso de uso UC Quadro 4 - Caso de uso UC Quadro 5 - Caso de uso UC Quadro 6 - Caso de uso UC Quadro 7 - Caso de uso UC Quadro 8 - Caso de uso UC Quadro 9 - Caso de uso UC Figura 9 Tela inicial do aplicativo Quadro 14- Instânciando o LocationListener Quadro 15 - Classe GPSLocationListener Quadro 16 - Classe VariaveisGlobais Figura 10 - Agenda Quadro 17 - Contatos Activity Figura 11 - Funcionalidade selecionar localização Quadro 18 - Método usarloc Quadro 19 - Método onactivityresult Quadro 20 - Método enviarmensagem() Quadro 21 - Diferenças entre os trabalhos correlatos... 49
10 LISTA DE SIGLAS ADT Application Development Tools API Application Programming Interface GPS Global Positioning System IDE Integrated Development Environment JVM Java Virtual Machine LBS Location Based Services OHA Open Handset Alliance SDK Software Development Kit SMS Short Message Service UML Unified Modeling Language URL Uniform Resource Location XML - extensible Markup Language
11 SUMÁRIO 1 INTRODUÇÃO OBJETIVOS DO TRABALHO ESTRUTURA DO TRABALHO FUNDAMENTAÇÃO TEÓRICA ANDROID Arquitetura Aplicativos Frameworks Bibliotecas Ambiente de Execução Kernel Linux ANDROID SDK API de Localização GOOGLE MAPS Google Maps API Google Maps no Android TRABALHOS CORRELATOS Flutter Google Latitude I Am Here DESENVOLVIMENTO REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO ESPECIFICAÇÃO Casos de uso UC01 Informar destinatário UC02 Selecionar número na agenda UC03 Visualizar histórico UC04 Selecionar Localização UC05 Editar Mensagem UC06 Enviar Mensagem UC07 Adicionar Localização Atual... 32
12 UC08 Visualizar Mensagem Localização Diagrama de classes Diagrama de distribuição Diagrama de sequência IMPLEMENTAÇÃO Técnicas e ferramentas utilizadas Configuração da aplicação Google Maps Key Operacionalidade da aplicação Selecionar número na agenda Selecionar localização Enviar mensagem RESULTADOS E DISCUSSÃO CONCLUSÕES EXTENSÕES REFERÊNCIAS BIBLIOGRÁFICAS... 51
13 12 1 INTRODUÇÃO O mercado de dispositivos móveis, especialmente os celulares, está em evidência e possui um público cada vez maior, devido à facilidade de aquisição de um aparelho por qualquer pessoa. Segundo a Anatel (2010), o Brasil fechou o ano de 2009 com 173,9 milhões de telefones celulares em operação, o que representa um crescimento de 15,74% em relação à dezembro de 2008, quando existiam no país 150,6 milhões de telefones móveis em funcionamento. Portanto, um mercado totalmente aquecido. Segundo Nemer (2006), está havendo uma rápida convergência de tecnologias no que diz respeito ao telefone móvel. A primeira geração de dispositivos móveis foi desenvolvida para satisfazer a mesma necessidade do usuário das linhas de telefones fixo: fazer e receber chamadas. No entanto, muitas funções têm sido adicionadas, tais como troca de mensagens texto/voz/multimídia, conexão Internet, tocador de música, filmadora, câmera, cartão de crédito, agenda, jornal, se estendendo a funcionalidades nunca antes imaginadas a estes pequenos dispositivos que estão evoluindo na direção dos telefones inteligentes. Os telefones inteligentes, ou popularmente chamados de smartphones, agregam as mais diversas funcionalidades, mas ainda mantém as opções básicas como o serviço de mensagens curtas, no inglês Short Message Service (SMS). SMS é a habilidade de enviar e receber mensagens de texto entre telefones celulares, sendo que cada uma pode conter até 160 caracteres. Os celulares estão recebendo um novo mundo de aplicações chamadas de Location Based Systems (LBS). Estes sistemas utilizam a informação de localização georeferenciada, para disponibilizar opções para o usuário, fornecendo informações mais relevantes ao local em que a pessoa se encontra. Segundo Virrantaus et al. (2001), LBS são serviços de informação acessados pelos dispositivos móveis através da rede móvel e utilizam a capacidade de registrar a localização atual. A maioria dos serviços LBS é capaz de obter a localização do usuário/dispositivo e utilizar essa informação para promover um serviço. Assim, os serviços que partem da posição geográfica do cliente, oferecendo a possibilidade de localizar usuários, máquinas, veículos e recursos, bem como o rastreamento dos mesmos, além de serviços sensíveis a localização. Estes sistemas, em muitos casos agregam a funcionalidade de apresentar essas informações dispostas em mapas nativos ou realizando integração com aplicações disponíveis na internet, como por exemplo, Google Maps. Diante do exposto, foi desenvolvido um protótipo para celulares de envio de Short
14 13 Message Service (SMS) georeferenciadas. As mensagens contendo as informações de localização serão enviadas de um celular para outro. O dispositivo receptor terá a funcionalidade de apresentar em um mapa a localização recebida. 1.1 OBJETIVOS DO TRABALHO O objetivo deste trabalho é desenvolver um protótipo que permite o envio de mensagens georeferenciadas a partir de um celular para outro. Os objetivos específicos do trabalho são: a) disponibilizar uma aplicação em dispositivos móveis para edição, associação de latitude e longitude do local de envio e o envio de SMS na plataforma Android; b) realizar integração com a Google Maps Application Programming Interface (API) sendo requisitada através da mensagem recebida. 1.2 ESTRUTURA DO TRABALHO A estrutura deste trabalho está apresentada em quatro capítulos, sendo que o segundo capítulo contém a fundamentação teórica necessária para o entendimento deste trabalho. No terceiro capítulo é apresentado o desenvolvimento da aplicação G-SMS, onde são disponibilizadas referências para o início do desenvolvimento de uma aplicação em Android, para em seguida serem apresentados os requisitos e a especificação da aplicação desenvolvida. Esta especificação compreende os diagramas de casos de uso, classes, sequência e distribuição. O terceiro capítulo também demonstra a operacionalidade da aplicação e aborda aspectos relacionados à sua implementação, bem como os resultados obtidos. Por fim, o quarto capítulo refere-se às conclusões do presente trabalho e sugestões para trabalhos futuros.
15 14 2 FUNDAMENTAÇÃO TEÓRICA Nas seções seguintes são apresentadas informações sobre Android, Android Software Development Kit (SDK), Google Maps API e trabalhos correlatos. 2.1 ANDROID Android é uma plataforma para dispositivos móveis que utiliza o sistema operacional Linux como base. Além disso, é considerada uma plataforma móvel completa, livre e aberta. Desenvolvida inicialmente pela Google e hoje mantida pela Open Handset Alliance (OHA), um grupo de mais de 30 empresas de telefonia celular e tecnologia. A união dessas empresas tem como intuito acelerar e inovar o desenvolvimento dos recursos dessa plataforma, trazendo para os consumidores uma melhor experiência em termos de recursos e mais barata em termos financeiros. Mais do que a simples entrada da Google no mercado de dispositivos móveis, o projeto Android têm ambição de ser uma plataforma livre presente em diversos modelos de celulares (LECHETA, 2009). O Android é baseado no núcleo do GNU/Linux, versão 2.6. O núcleo do sistema funciona como uma camada de abstração entre o hardware e o restante da pilha de softwares da plataforma (LECHETA, 2009). O núcleo do GNU/Linux já possui vários recursos necessários para a execução de aplicações, como gerenciamento de memória, gerenciamento de processos, pilha de protocolos de rede, módulo de segurança e vários módulos de núcleo de infraestrutura. Como o sistema operacional é conhecido, também facilita o surgimento de melhorias aos drivers de hardware já existentes. Composto por um conjunto de software para dispositivos móveis, um middleware, aplicativos e um sistema operacional, uma das grandes apostas desta plataforma é a disponibilidade do Android SDK. Este software disponibiliza os recursos necessários para criação e desenvolvimento de aplicações segundo as classes dispostas na Application Programming Inteface (API). Estas aplicações são escritas utilizando a linguagem de programação Java e executadas por uma máquina virtual projetada para rodar sobre um núcleo Linux e aperfeiçoada para o funcionamento em dispositivos móveis, chamada Dalvik. Portanto a plataforma Android não se utiliza de uma Java Virtual Machine (JVM)
16 15 convencional (GOOGLE, 2011a) Arquitetura Android possui uma arquitetura dividida em cinco componentes: Aplicativos, Framework, Bibliotecas, Ambiente de Execução e Kernel Linux. A figura 1 apresenta os cincos componentes de software que constituem o Android. Fonte: Lee (2011). Figura 1 - Arquitetura geral da plataforma Android Aplicativos A camada mais alta ou exterior da arquitetura da plataforma Android é onde são encontrados os aplicativos. Sendo estes fornecidos pela plataforma (um cliente de , navegador Web, calendário, mapas e outros), disponíveis no Android Market ou até mesmo desenvolvidos por programador durante sua concepção. Estes são desenvolvidos em Java e convertidos para o formato de bytecode capaz de ser executado pela Dalvik VM (LEE, 2011).
17 16 As aplicações podem rodar simultaneamente, através das instâncias criadas pela máquina virtual Dalvik para cada uma das aplicações, dando ao usuário o poder de alternar facilmente entre aplicações. As aplicações são executadas através de uma arquivo.dex, reconhecido pela máquina virtual utilizada Frameworks A arquitetura da aplicação foi projetada para simplificar o reuso dos componentes, possibilitando os desenvolvedores terem acesso completo à mesmas APIs das aplicações chave do Android, simplificando o código através do reuso dos componentes e abstraindo parte dos procedimentos que fazem funcionar. Os componentes chaves para desenvolvimento de aplicações Android são: a) activity base para desenvolvimento da interface visual de uma aplicação, a qual necessita da interação com um usuário. Por exemplo, uma aplicação de lista de pendências poderia ter uma activity que apresenta um campo com a descrição, uma segunda activity que representa a data limite que esta pendência deve ser finalizada. Embora trabalhem juntas para compor uma interface coesa, cada activity é independente uma da outra; b) service não apresenta uma interface visual para o usuário. Esta classe é responsável pelas tarefas que são executadas em segundo plano. Por exemplo, um service pode tocar música, enquanto o usuário vê fotos, ou pode executar tarefas cujo resultado será utilizado por uma activity; c) broadcastreceiver é o componente que tem função de receber e reagir à um anúncio. Por exemplo, anúncios que uma foto foi tirada, que a bateria está fraca, ou que o usuário alterou sua preferência de idioma. Também é possível que aplicativos iniciem emissões, tal como transferir dados para outro dispositivo; d) contentprovider - um contentprovider é capaz de disponibilizar um conjunto específico de dados para outras aplicações. Estes dados podem ser armazenados no sistema de arquivo, em um banco de dados SQLite, ou em qualquer outra forma possível. Para que outras aplicações possam recupera e manipular estes dados, é necessário implementar um conjunto de métodos capazes de interagir com o tipo de
18 17 armazenamento escolhido; e) intent os componentes service, activity e broadcastreceiver de uma aplicação, são ativados por meio de mensagens, chamada de intens. Essas mensagens são utilizadas para facilitar a ligação entre componentes da aplicação ou de aplicações diferentes, em tempo de execução. O Objeto intents, é uma estrutura de dados passiva que possui uma descrição abstrata de uma operação a ser realizada, ou no caso de transmissões, uma descrição de algo que aconteceu e está sendo anunciado; f) view elemento utilizado para definir objetos gráficos exibidos na tela, capaz de prover interação com o usuário, tal como, botões, caixas de diálogo, mapas e outros Bibliotecas Sobre o Kernel, encontra-se um conjunto de bibliotecas C/C++ que são utilizadas pelo sistema. Adaptadas para Linux, estas bibliotecas suportam diversos formatos de vídeo, áudio, assim como funções de gráficos, imagens estáticas, funções de acesso a banco de dados, entre outros. Todos esses recursos podem ser integrados às aplicações, dado que estes estão disponíveis no framework (MEIER, 2009) Ambiente de Execução A Dalvik Virtual Machine (Dalvik VM) é baseada em uma arquitetura de registradores. Esta máquina virtual foi desenvolvida com o intuito de obter maior desempenho em hardwares com pouco poder de processamento. O motivo que leva a Dalvik VM não ser considerada uma máquina virtual java é o formato dos arquivos que esta máquina virtual executa, arquivos.dex (Dalvik Executable) e não arquivos.class, como é feito pelas JVMs convencionais (MEIER, 2009). A plataforma Android compila o código (.java) gerando arquivos.class, estes por sua vez são transformados pela dx tool em.dex. Este formato de bytecode foi desenvolvido para ocupar menos espaço e carregar rapidamente, pois é orientado a compartilhamentos de dados,
19 18 tornando-se muito útil para aplicativos voltados à dispositivos móveis Kernel Linux O kernel do Linux utilizado como base do sistema operacional Android foi modificado para que o sistema fosse customizado de acordo com as necessidades e características dos dispositivos móveis, assim como novos drivers de dispositivo, modificações ao sistema de gerenciamento de energia e um sistema responsável por finalizar processos de maneira criteriosa quando há pouca memória indisponível. Além de prover as tarefas fundamentais de um sistema, como gerenciamento de memória, pilha de protocolos de rede, modelo de drivers, segurança e gerenciamento de processos. 2.2 ANDROID SDK O desenvolvimento de uma aplicação para dispositivos móveis que utilizam a plataforma Android requer a utilização do Android SDK, que provê algumas ferramentas úteis para o desenvolvimento dos aplicativos. Estão incluídos no Android SDK o aplicativo de debug, bibliotecas, documentação, códigos exemplos, tutoriais e um emulador do sistema operacional Android. Ele é suportado por diversos sistemas operacionais como, Linux, Mac OS X e Windows, e pode ser facilmente integrado ao Eclipse (Integrated Development Environment IDE), por meio do plugin Android Development Tools (ADT) Plugin, que facilita o desenvolvimento das aplicações por ser o IDE oficial da plataforma (LEE, 2011). O emulador do Android SDK simula todos os recursos de hardware e software típicos de um dispositivo móvel que utiliza o sistema operacional Android. O emulador também disponibiliza várias possibilidades de depuração tais como um console em que pode-se registrar a saída do kernel, simular interrupções de aplicação e simular os efeitos de latência no canal de dados. Será por meio dessa ferramenta que o desenvolvimento e os testes iniciais serão realizados. Sobre a estrutura de um projeto Android, as aplicações seguem uma base diferente das aplicações comuns de Java. Por exemplo, as aplicações Android utilizam arquivos XML responsáveis por definir os layouts que serão exibidos na tela, as classes devem ser derivadas
20 19 da classe Activity (atividade) e o método principal das classes é o método oncreate. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="enter the phone number of recipient"/> <EditText android:id="@+id/txtphoneno" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="message"/> <EditText android:id="@+id/txtmessage" android:layout_width="fill_parent" android:layout_height="150px" android:gravity="top"/> <Button android:id="@+id/btnsendsms" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="send SMS"/> </LinearLayout> Quadro 1 - Exemplo de arquivo XML que define layout de uma tela Para atribuir um layout de tela definido em um arquivo XML a uma atividade é utilizado o método setcontentview, que recebe como parâmetro o identificador único de um arquivo do layout que será atribuído à atividade, de modo a representar a interface com a qual a atividade se comunica com o usuário. O aplicativo também trabalha com diretórios específicos dentro da pasta do projeto, cada uma com suas finalidades. Os diretórios drawable, layout e values, por exemplo, estão dentro do diretório res e possuem respectivamente as funções de armazenar todas as imagens, todos os layouts e todos os valores estáticos que podem ser utilizados por um arquivo XML (STEELE; TO, 2010). Existe também uma classe chamada R.java gerada automaticamente pela IDE. A classe mantém constantes de referências para os diversos recursos da aplicação disponibilizados dentro do diretório res. É através dessas referências que as demais classes interagem com os
21 20 recursos (STEELE; TO, 2010). /* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */ public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class id { public static final int btnsendsms=0x7f050002; public static final int txtmessage=0x7f050001; public static final int txtphoneno=0x7f050000; } public static final class layout { public static final int main=0x7f030000; } public static final class string { public static final int app_name=0x7f040001; public static final int hello=0x7f040000; } } Quadro 2 Exemplo de arquivo R.java API de Localização O Android permite que aplicações acessem os serviços de localização providos pelo dispositivo por meio do pacote de classes android.location. O componente central deste pacote é o serviço de sistema chamado LocationManager. Esta classe tem a função de monitorar eventos e atividades de localização. Por exemplo, através dessa classe é possível obter informações da posição geográfica do dispositivo e até mesmo disparar algum evento caso o dispositivo esteja nas proximidades de uma localidade específica (MURPHY, 2009). Outra classe importante é a LocationProvider que visa fornecer serviços de
22 21 localização de acordo com determinados critérios estabelecidos, como por exemplo, informações de velocidade, altitude, bússola e outros. O Android pode obter a localização do aparelho por LocationProvider distintos. Utilizando o GPS_PROVIDER o telefone irá fazer a geolocalização utilizando os dados que recebe do Global Positioning System (GPS). Este tipo tende a ser mais preciso, porém as vezes podem demorar mais pois necessitam de sincronização com os satélites. Além disso, ambientes fechados ou com pouca cobertura de GPS podem afetar diretamente na velocidade de obtenção da localização. No caso do NETWORK_PROVIDER o telefone irá tentar fazer uma triangulação das antenas, ou obter informações das redes wi-fi ao seu alcance. Duas outras classes trabalham com informações de pontos geográficos fixos, a classe Location identifica esses pontos por meio dos valores de latitude e longitude. E a classe Geocode permite que valores de latitude e longitude possam ser convertidos para um endereço, podendo obter o nome e o código postal (MURPHY, 2009). 2.3 GOOGLE MAPS Google Maps é um serviço de pesquisa e visualização de mapas e imagens de satélite da Terra gratuito fornecido pela empresa Google. Atualmente, o serviço disponibiliza mapas e rotas para diversas localizações do globo, com possibilidade de aproximação das imagens em grandes cidades. Em fevereiro de 2005 ainda em sua versão beta, o Google Maps foi lançado tornandose rapidamente uma referência em serviços de mapas na Internet. A interface rica e intuitiva da aplicação permitia acesso a uma enorme base de dados contendo inúmeras imagens de satélite, mapas de cidades, bairros, ruas e avenidas dos Estados Unidos. Em maio de 2007, a Google disponibilizou consultas de endereços no Brasil e em outubro de 2007, uma versão estendida para o público brasileiro foi oferecida, com a possibilidade de se localizar restaurantes, hotéis, traçar rotas, dentre outras utilidades (AZEVEDO, 2008) Google Maps API Um dos projetos do Google que dispõe de uma forte aceitação acadêmica e comercial é
23 22 a biblioteca externa para desenvolvimento de aplicações baseadas em mapas. O Google Maps API está presente em diversas aplicações, com inúmeras funcionalidades que são enriquecidas pela apresentação dos mapas disponibilizados por este provedor, assim como, a possibilidade de traçar rotas a partir de informações de origem e destino, adicionar marcadores em pontos específicos do mapa, entre outras possibilidades. A primeira versão da API do Google Maps foi disponibilizada em junho de Atualmente está disponível em sua terceira versão sendo mais rápida e eficaz, além ter uma compatibilidade maior com dispositivos móveis e últimas versões dos navegadores convencionais (GOOGLE, 2011b) Google Maps no Android A plataforma Android está fortemente integrada com os serviços do Google. Sendo assim a Google disponibilizou uma versão da Google Maps API para o projeto Android. Baseado em uma biblioteca externa, por meio das classes presentes nesta biblioteca é possível download, renderização e cache das informações de mapas obtidas, como também várias opções de exibição e controle. Os quatro tipos de visualização de mapas fornecidos são: mapas de imagens de satélite, mapas topográficos, mapas de ruas e visualização de ruas conhecido como StreetView. Este último disponível apenas em algumas cidades. Apesar de ser considerada uma biblioteca externa, o projeto da Google Maps API para Android ainda não dispõe de um meio de obtenção dessa biblioteca de maneira separada ao projeto Android. Esta biblioteca é instalada durante o processo de instalação do Android SDK, sendo necessário apenas uma seleção de opção. As classes da biblioteca de mapas estão disponíveis no pacote com.google.android.maps. Sendo a classe principal desta biblioteca a MapView, que consiste em um objeto gráfico responsável pela visualização de mapas providos pelo provedor do Google Maps, capaz de alterar entre três diferentes tipos de mapas (mapas de imagens de satélite, mapas topográficos e mapas de ruas). A MapView necessariamente deve ser utilizada em uma MapActitvity que é um tipo de Activity especial para esta função. A aplicação não é executada em outros tipos de Activity. Com a utilização da Google Maps API, é possivel criar aplicações robustas baseadas em localização por coordenadas geográficas (latitude e longitude) que podem ser integradas a aplicação que utilizam a API de localização encontrada no Android.
24 23 Com relação aos controles, o destaque fica para a classe MapController capaz de alterar o nível de zoom do mapa, mudar a localização exibida entre outras funções. Também é encontrada na biblioteca do Google Maps a classe Overlay, utilizando esta classe é possível criar elementos de sobreposição. Por exemplo, a partir de uma imagem estática, esta pode ser desenhada por cima do mapa principal obtida a partir do serviço do Google Maps. Outros recursos que podem ser trabalhados através das classes disponíveis no pacote da API do Google Maps, são balões informativos, que servem para exibir informações sobre um determinado local e as linhas que ligam dois pontos estabelecidos previamente, podendo obter informações da distância entre esses dois pontos. 2.4 TRABALHOS CORRELATOS Existem aplicações que possuem características semelhantes ao proposto neste trabalho, tais como o Flutter (JUICE WIRELESS INCORPORATION, 2009), Google Latitude (GOOGLE, 2011c) e I Am Here (GEOSMS, 2010) Flutter Segundo JUICE WIRELESS INCORPORATION (2009), o Flutter é uma aplicação para IPhone que possibilita o envio de mensagens multimídia. O aplicativo permite enviar mensagens com fotos anexadas e com a georeferência referente ao local do momento do envio.
25 24 Fonte: Juice Wireless Incorporation (2009). Figura 2 - Aplicativo Flutter para Iphone As mensagens são enviadas a um servidor ficando disponível ao destinatário. O destinatário acessa a mensagem através de um link, este encaminhado pela aplicação servidora através de um SMS ao dispositivo do usuário destinatário. Caso a mensagem tenha sido enviada com os dados de localização, um mapa é apresentado com um marcador sinalizando o local. O aplicativo faz uso da Google Maps API para apresentar a localização (JUICE WIRELESS INCORPORATION, 2009) Google Latitude O Google Latitude é um serviço de middleware oferecido pelo Google para usuários de dispositivos móveis do mundo todo. Ele provê funcionalidade de localização de usuários através de seu dispositivo móvel e tem como principal apelo a integração com aplicações do Google como o Orkut, Google Maps, Google Earth, Google Talk, Gmail, Google Buzz e blogs. Na maioria dos casos, o objetivo é indicar a localização do usuário no momento em que escreve uma mensagem, inicia uma sessão de bate papo ou simplesmente define a melhor rota para uma determinada localidade. No caso do Orkut, por outro lado, existem outras aplicações relevantes mais voltadas ao âmbito de redes sociais. Uma vez que este serviço pode ser estendido para os amigos de um usuário, é possível, por exemplo, que ele realize o acompanhamento da localização de seus amigos em tempo real (GOOGLE, 2011c). Através da funcionalidade chamada Latitude Alerts o usuário pode ser notificado
26 25 sempre que um de seus amigos está por perto. Essa funcionalidade, em conjunto com outra chamada de Histórico de Localizações permite que o usuário receba as notificações de proximidade apenas quando estiver em lugares não usuais, evitando assim notificações de amigos enquanto você está em casa ou no seu ambiente de trabalho. A funcionalidade Histórico de Localizações permite ainda que um usuário revisite os trajetos percorridos em um determinado período de tempo. O Latitude possui outra funcionalidade chamada Crachá de Localização Pública que informa aos visitantes de um blog qual é a localização de seu autor no momento e a integração com o Google Talk permite que contatos no serviço de mensagens instantâneas visualizem a localização atual de um usuário em diferentes níveis (país, estado, cidade ou bairro, por exemplo). Fonte: Google (2011c). Figura 3 - Google Latitude em versões para Android, RIM e ios Em relação à privacidade, a Google garante que o histórico de localização de um usuário não é visível publicamente ou mesmo pelos amigos do usuário no sistema. Além disso, usuários podem apagar seu histórico (ou parte dele) a qualquer momento (GOOGLE, 2011c) I Am Here A aplicação tem como objetivo disponibilizar o envio e o recebimento de SMS com informações de georeferencia. Segundo GEOSMS (2010), o I am here foi desenvolvido para a plataforma Android. A localização é enviada no SMS no formato , , sendo
27 26 respectivamente a latitude e longitude. Uma mesma mensagem pode apresentar mais de um conjunto de coordenadas sendo somente uma adquirida pelo GPS, as demais precisam ser digitadas pelo usuário. Fonte: GEOSMS (2010). Figura 4 - Telas da aplicação I am here O destinatário ao receber a mensagem pode optar em visualizar uma bússola que aponta na direção da localização ou visualizar em mapa utilizando a integração com API Google Maps. A funcionalidade de marcadores da API é utilizada para apresentar o local exato no mapa (GEOSMS, 2010).
28 27 3 DESENVOLVIMENTO Neste capítulo são abordadas as etapas do desenvolvimento do projeto. São ilustrados os principais requisitos, a especificação, a implementação e por fim são listados os resultados e discussões. 3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO Os requisitos apresentados abaixo se encontram classificados em Requisitos Funcionais (RF) e Requisitos Não Funcionais (RNF). A aplicação deve: a) possibilitar o envio de mensagem SMS contemplando no corpo da mensagem as informações de georeferenciamento (RF); b) recuperar informações da agenda através da Contacts API do Android (RF); c) permitir o envio de mensagem para um telefone não cadastrado na agenda (RF); d) disponibilizar uma lista dos últimos destinatários (RF); e) disponibilizar uma lista das últimas mensagens enviadas (RF); f) disponibilizar a visualização da localização enviada na mensagem através de um navegador (RF); g) a interface deverá ser definida utilizando arquivos XML (RNF); h) a visualização dos dados georefenciados utilizando a Google Maps (RNF); i) ser implementado utilizando o ambiente de desenvolvimento Eclipse (RNF). 3.2 ESPECIFICAÇÃO A especificação do presente trabalho foi desenvolvida utilizando alguns dos diagramas da Unified Modeling Language (UML) em conjunto com a ferramenta Enterprise Architect versão para elaboração dos casos de uso, diagramas de classe, diagrama de distribuição e diagrama de sequência.
29 Casos de uso O trabalho disponibiliza um aplicativo para dispositivos móveis na plataforma Android para envio de mensagens georeferenciadas. Nos casos de uso são apresentados dois usuários: emissor, que envia a mensagem e receptor, que recebe. Na figura 5 é apresentado o diagrama de casos de uso da aplicação. uc Use Case Model UC01 - Informar destinatário UC02 - Selecionar número na agenda UC03 - Visualizar Histórico Emissor UC04 - Selecionar Localização UC05 - Editar Mensagem UC07 - Adicionar Localização Atual UC06 - Enviar Mensagem UC08 - Visualizar Mensagem Localização Receptor Figura 5 - Casos de uso da aplicação G-SMS
30 UC01 Informar destinatário Neste caso de uso é feito o controle do número informado de telefone de destino. UC01 Informar destinatário Pré-condição Não possui Cenário principal Usuário informa número de telefone de destino Pós-condição Campo de número de destino preenchido Quadro 3 - Caso de uso UC UC02 Selecionar número na agenda O caso de uso UC02, apresenta a listagem de contatos da agenda com seus respectivos contatos e permite o usuário selecionar um para preencher o campo de número de destino. UC02 Selecionar número na agenda Pré-condição Não possui Cenário principal 1. Usuário aperta o botão Agenda 2. Sistema lista todos os contatos que possuem números telefônicos cadastrados 3. Usuário clica em um contato da lista 4. Sistema retorna a tela principal e preenche campo número destino com o selecionado Exceção No passo 2 do cenário principal, caso não houver nenhum contato com número telefônico na agenda, o sistema apresentará mensagem para o usuário Nenhum número telefônico disponível na agenda Pós-condição Campo de número de destino preenchido. Quadro 4 - Caso de uso UC UC03 Visualizar histórico Caso de uso que apresenta o histórico de mensagens enviadas e recebidas pelo
31 30 aplicativo G-SMS e que ainda estão disponíveis na memória do aparelho. UC03 Visualizar histórico Pré-condição Não possui Cenário principal 1. Usuário aperta o botão de agenda 2. Sistema lista os registros de mensagens enviadas e recebidas pelo aplicativo G-SMS existentes na memória do aparelho 3. Usuário clica em um dos itens da lista. 4. Sistema apresentará a mensagem com todos os detalhes. Número de destino, nome do destinatário caso este esteja cadastro na agenda e a mensagem Exceção No passo 2 do cenário principal, caso não houver nenhum registro de mensagem enviada ou recebida pelo aplicativo G- SMS, o sistema apresentará mensagem para o usuário Nenhuma mensagem enviada ou recebida Pós-condição Mantém-se como antes devido se tratar apenas de uma consulta Quadro 5 - Caso de uso UC UC04 Selecionar Localização Neste caso de uso, o emissor seleciona a localização que deseja anexar no SMS a ser enviado para o usuário receptor. A seleção ocorre ao pressionar longamente um ponto no mapa, um alfinete é utilizado para demonstrar essa seleção. A localização pode ser qualquer uma disponível no mapa, não necessariamente a localização recuperada pelo GPS no mesmo momento.
32 31 UC04 Selecionar Localização Pré-condição Não possui Cenário principal 1. Usuário aperta o botão Selecionar Localização 2. Sistema mostra mapa animado com a localização atual do aparelho 3. Usuário navega pelo mapa e pressiona longamente a localização desejada marcando o ponto 4. Usuário aperta o botão Usar Localização 5. Sistema adiciona ao campo mensagem os dados de georeferenciamento Pós-condição Mensagem com os dados de georeferenciamento disponíveis Quadro 6 - Caso de uso UC UC05 Editar Mensagem Este caso de uso demonstra a possibilidade do usuário emissor editar a mensagem de texto antes de ser enviada ao usuário receptor. UC05 Editar Mensagem Pré-condição Não possui. Cenário principal 1. Usuário seleciona campo mensagem. 2. Digita ou apaga os caracteres disponíveis no campo. Pós-condição Mensagem disponível editada conforme execução Quadro 7 - Caso de uso UC UC06 Enviar Mensagem Neste caso de uso é apresentada a funcionalidade de enviar mensagem e as validações que o aplicativo realiza antes de enviar propriamente.
33 32 UC06 Enviar Mensagem Pré-condição Cenário principal Exceção 1 Exceção 2 Pós-condição Não possui 1. Usuário clica no botão Enviar mensagem 2. Sistema valida se número de destino foi informado 3. Sistema valida se o campo mensagem está preenchido 4. Sistema dispara envio de mensagem No passo 2, caso o campo estiver em branco, o sistema irá apresentar mensagem erro e solicitará que seja preenchido o campo antes de clicar o botão Enviar mensagem novamente No passo 3, caso o campo estiver em branco, o sistema irá apresentar mensagem erro e solicitará que seja preenchido o campo antes de clicar o botão Enviar mensagem novamente Mensagem enviada para o número informado. Quadro 8 - Caso de uso UC UC07 Adicionar Localização Atual Neste caso é apresentada a funcionalidade de adicionar os dados georeferenciados da localização atual na mensagem. UC07 Adicionar Localização Atual Pré-condição Não possui. Cenário principal 1. Usuário clica no botão Adicionar Localização Atual 2. Adiciona dados de georeferenciamento a mensagem Pós-condição Mensagem com os dados de georeferenciamento disponíveis. Quadro 9 - Caso de uso UC UC08 Visualizar Mensagem Localização O caso de uso 8 apresenta a funcionalidade de visualizar a localização recebida sendo chamada após abrir a Uniform Resource Location (URL). A visualização pode ser feita através de um navegador ou aplicativo Google Maps associado.
34 33 UC08 Visualizar Mensagem Localização Pré-condição Ter recebido mensagem enviada pelo aplicativo Cenário principal 1. Usuário receptor recebe a mensagem 2. Abre a URL enviada para o celular e visualiza a localização através do Google Maps Pós-condição Visualização da localização no Google Maps Quadro 10 - Caso de uso UC Diagrama de classes O diagrama de classes, figura 6, apresenta uma visão de como as classes desenvolvidas estão estruturadas e relacionadas. Sendo a MensagemActivity a activity principal do aplicativo. É a partir dela que as demais activities são iniciadas. class Classes MensagemActivity com.google.android.maps.overlay MapOverlay Activity - btaddlocatual: Button - btaddlocselecionar: Button - btagenda: ImageButton - btenviar: Button - bthistorico: ImageButton - etmemsagem: EditText - etnumerodestino: EditText - GoogleMapsURL: String = "GSMS: - lm: LocationManager - locationlistener: GSMSLocListener + adicionarlocalizacao(string, String) : void + enviarmensagem() : void + onactivityresult(int, int, Intent) : void + oncreate(bundle) : void + draw(canvas, MapView, boolean, long) : boolean -locationlistener GSMSLocListener LocationListener + onlocationchanged(location) : void + onproviderdisabled(string) : void + onproviderenabled(string) : void + onstatuschanged(string, int, Bundle) : void + CustomMapView(Context, String) -longpresslistener + CustomMapView(Context, AttributeSet) + CustomMapView(Context, AttributeSet, int) - handlelongpress(motionevent) : void + ontouchevent(motionevent) : boolean + setonlongpresslistener(onlongpresslistener) : void LocalizacaoActivity - btcentralizar: Button - btusarlocalizacao: Button - gp: GeoPoint - mapa: CustomMapView - mc: MapController MapView # isroutedisplayed() : boolean CustomMapView -mapa+ onbackpressed() : void + oncreate(bundle) : void - lastmapcenter: GeoPoint - usarloc() : void ~ LONGPRESS_THRESHOLD: int = 500 {readonly} - longpresslistener: OnLongpressListener - longpresstimer: Timer = new Timer() «interface» OnLongpressListener MapActivity + onlongpress(mapview, GeoPoint) : void VariaveisGlobais - latitude: double = 0.0d - longitude: double = 0.0d + getlatitude() : double + getlongitude() : double + setlatitude(double) : void + setlongitude(double) : void HistoricoActivity + onbackpressed() : void + oncreate(bundle) : void Activity ContatosActivity ListActivity ~ arrcontatos: ArrayList<String> = new ArrayList<S... ~ arrnumeros: ArrayList<String> = new ArrayList<S... ~ contatos: String ([]) + onbackpressed() : void + oncreate(bundle) : void # onlistitemclick(view, int, long) : void Figura 6- Diagrama de classes A classe MensagemActivity possui 4 métodos sendo que o oncreate é chamado na inicialização. Este carrega o layout da tela definido no arquivo mensagem.xml, atribui listeners de onclick em cada botão da tela (btaddlocatual, btaddlocselecionar,
35 34 btagenda, btenviar e bthistorico) e instancia GSMSLocListener. Esta classe implementa os métodos da interface LocationListener e recebe as notificações do LocationManager (lm) quando a localização do aparelho é alterada. LocalizacaoActivity é a activity que apresenta mapas utilizando a API do Google Maps e a classe CustomMapView que extende o objeto MapView responsável por mostrar na tela do aparelho o mapa bem como manipular vários de seus atributos como mudar o tipo de visualização de satélite para rua e realizar zoom. A criação da CustomMapView foi necessária devido a necessidade de realizar o tratamento da ação longpress utilizando a interface. Pela classe MapView não é possível devido a impossibilidade de associar a interface criada OnLongpressListener Diagrama de distribuição O diagrama de distribuição, apresentado na figura 7, caracteriza o contexto da aplicação e o cenário de uso da mesma. sd Distribuição Emissor (from Usuários) Receptor (from Usuários) Celular (Aplicação G-SMS) <<sms>> Celular Figura 7 - Diagrama de distribuição
36 Diagrama de sequência A figura 8 apresenta o diagrama de sequência do envio da mensagem georeferenciada. O usuário emissor ao iniciar o programa, o método oncreate da classe MensagemActivity é executado apresentando a tela principal do sistema. O método startactivityforresult faz a chamadas para as demais activities e telas do protótipo. sd Sequência MensagemActivity ContatosActivity HistoricoActivity LocalizacaoActivity Emissor oncreate(savedinstancestate) adicionarlocalizacao(longitude, latitude) enviarmensagem() startactivityforresult(intent, int) onlistitemclick(view, int, long) onbackpressed() startactivityforresult(intent, int) onbackpressed() startactivityforresult(intent, int) usarloc() onbackpressed() enviarmensagem() (from Usuários) Figura 8 - Diagrama de sequência 3.3 IMPLEMENTAÇÃO Esta seção apresenta as bibliotecas, técnicas e ferramentas utilizadas para o desenvolvimento da aplicação, junto com as descrições das telas e trechos de código para um
37 36 melhor entendimento Técnicas e ferramentas utilizadas O protótipo G-SMS foi implementada na linguagem de programação Java utilizandose o ambiente de desenvolvimento Eclipse IDE. Em conjunto com os recursos da linguagem de programação da aplicação foi utilizado o Android SDK, que disponibiliza todas as ferramentas e APIs necessárias para o desenvolvimento de aplicativos para a plataforma Android na linguagem de programação Java. O pacote de desenvolvimento Android utilizado inclui um sistema operacional, um middleware e aplicativos de características essenciais, dentre os quais se encontram o emulador e um debbuger, juntamente com toda a biblioteca de desenvolvimento para dispositivos móveis que utilizam o sistema operacional Android. A escolha do ambiente de desenvolvimento Eclipse se deu devido este ser o oficial da plataforma Android e a existência do Android Development Tools (ADP). Este um plug-in que facilita o desenvolvimento das aplicações gerando o projeto com os componentes necessários de inicio, além de disponibilizar ferramentas de debug e log Configuração da aplicação Em todo projeto Android existe um arquivo chamado AndroidManifest.xml. Esse arquivo é obrigatório e é nele que são feitas as configurações de todos os recursos utilizados pela aplicação (activities, componentes gráficos, layouts, permissões, imagens, etc). O quadro 11 apresenta o conteúdo comentado do arquivo AndroidManifest.xml da aplicação G-SMS.
38 37 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="br.com.gsms" android:versioncode="1" android:versionname="1.0"> <!-- Menor versão compatível com a aplicação --> <uses-sdk android:minsdkversion="7" /> <!-- Ícone e nome da aplicação --> <application android:icon="@drawable/icon" android:label="@string/app_name"> <!-- Importa e disponibiliza a biblioteca do Google Maps --> <uses-library android:name="com.google.android.maps" /> <!-- Activity inicial --> <activity android:name="br.com.gsms.mensagemactivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <!-- Demais Activities --> <activity android:name="br.com.gsms.historicoactivity" android:label="histórico"/> <activity android:name="br.com.gsms.localizacaoactivity" android:label="selecione uma Localização"/> <activity android:name="br.com.gsms.contatosactivity" android:label="agenda"/> </application> <!-- Permissões para a aplicação --> <!-- Permissão necessária para consultar o histórico de SMS --> <uses-permission android:name="android.permission.read_sms"/> <!-- Permissão necessária para enviar SMS --> <uses-permission android:name="android.permission.send_sms"/> <!-- Permissão necessária para consultar os contatos --> <uses-permission android:name="android.permission.read_contacts"/> <!-- Permissão necessária para acessar a Internet --> <uses-permission android:name="android.permission.internet"/> <!-- Permissão necessária para recuperar a localização através do GPS --> <uses-permission android:name="android.permission.access_fine_location" /> </manifest> Quadro 11 - AndroidManifest.xml Google Maps Key A integração do Google Maps com uma aplicação Android requer uma chave de API. A chave é utilizada para que os servidores do Google reconheçam a aplicação e permitam o acesso aos dados dos mapas. Desta maneira, a Google previne que uma aplicação acesse os servidores de maneira descontrolada deixando-os lentos e possivelmente indisponíveis para
39 38 outras aplicações. A chave é gratuita e simples de ser solicitada. Ao executar uma aplicação Android através Eclipse é gerado um arquivo debug.keystroke utilizado para extrair com a ferramenta KeyTool disponível no Java SDK o MD5 fingerprint. É necessário também uma conta Google para poder informar o MD5 fingerprint e obter uma chave de utilização da API. A API key deve ser informada dentro do XML de layout da tela que irá conter a classe MapView conforme quadro 12, que define a tela de selecionar localização. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal"> <FrameLayout android:id="@+id/map_frame" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content"> <br.com.gsms.utils.custommapview android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:clickable="true" <!-- Chave da API --> android:apikey="0fxzs8m7kdbigtnfhqoc8qejgmvdron7vht2zkw"/> </FrameLayout> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margintop="10sp" android:layout_marginbottom="10sp"> <Button android:id="@+id/btusarloc" android:text="usar Localização" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:id="@+id/btcentralizar" android:text="centralizar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginleft="10sp"/> </LinearLayout> </LinearLayout> Quadro 12 - XML do layout da tela de selecionar localização No arquivo AndroidManifest.xml se faz necessário adicionar a permissão referente a acesso a internet para que a aplicação possa realizar o download dos mapas.
40 Operacionalidade da aplicação A operacionalidade do protótipo é apresenta em função dos principais casos de uso da aplicação, sendo apresentadas capturas de telas e extração de código fonte para melhor ilustrar e facilitar o entendimento de cada uma das funcionalidades disponibilizadas. Figura 9 Tela inicial do aplicativo Ao abrir o aplicativo (figura 9), é apresentada para o usuário a tela inicial do protótipo. Esta é a base para chamadas de todas as funcionalidades do sistema. O Quadro 13 apresenta XML, messagem.xml, que define o layout da tela inicial.
41 40 <?xml version="1.0" encoding="utf-8"?> <!-- declaração do elemento LinearLayout (Raiz do layour para tela e atividade definindo a orientação como sendo vertical e o tamanho de tela cheia. Pois a altura (layout_height) e largura (layout_width) tem como parâmetro fill_parent. Preencher elemento pai, mas como esse é o elemento inicial, a tela toda é preenchida. --> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <!-- declaração de mais um elemento LinearLayout. Com a diferença para o parâmetro de altura (layout_height) como o valor de wrap_content que garante que o elemento fique do tamanho necessário para conter o elementos interno a ele --> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="10sp"> <!-- declaração do elemento EditText. O parâmetro id mantém o identificador único numerodestine do elemento, o inputtype phone garante que apenas números sejam informados --> <EditText android:id="@+id/numerodestino" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minlines="1" android:hint="número de destino" android:gravity="left" android:inputtype="phone"/> <!-- declaração do elemento ImageButton. O parâmetro scr mantém o imagem que deve ser mostrada no botão, no caso o arquivo addressbook mantido nas pastas drawable --> <ImageButton android:id="@+id/btagenda" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/addressbook"/> <!-- declaração do elemento ImageButton --> <ImageButton android:id="@+id/bthistorico" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/log"/>
42 41 </LinearLayout> <!-- declaração do elemento LinearLayout --> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <!-- declaração do elemento TextView --> <TextView android:text="mensagem:" android:textstyle="bold" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginleft="5sp"/> </LinearLayout> <!-- declaração do elemento EditText. Parâmetro minlines garante que este objeto tenha pelo menos 4 linhas de tamanho --> <EditText android:id="@+id/message_editor" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minlines="4" android:hint="digite a mensagem"/> <!-- declaração do elemento LinearLayout --> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <!-- declaração do elemento Button --> <Button android:id="@+id/addlocatual" android:text="adicionar Localização Atual" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textsize="14dp"/> </LinearLayout> <!-- declaração do elemento LinearLayout --> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <!-- declaração do elemento Button --> <Button android:id="@+id/addlocselected" android:text="selecionar Localização" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textsize="14dp"/>
43 42 </LinearLayout> <!-- declaração do elemento LinearLayout --> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <!-- declaração do elemento Button --> <Button </LinearLayout> </LinearLayout> android:text="enviar mensagem" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textsize="14dp"/> Quadro 13 - Layout tela inicial do programa O aplicativo ao iniciar na activity MensagemActivity instancia um LocationListener que busca a localização atual do aparelho. O quadro 14 demonstra essa parte do código. <!-- Busca o localização através do GPS --> lm = (LocationManager) getsystemservice(context.location_service); locationlistener = new GPSLocationListener(); lm.requestlocationupdates(locationmanager.gps_provider,0,0,locationlistener); Quadro 14- Instânciando o LocationListener GPSLocationListener é uma classe que implementa a interface LocationListener conforme apresentado no quadro 15. class GPSLocationListener implements LocationListener { public void onlocationchanged(location loc) { VariaveisGlobais.setLongetitude(loc.getLongitude()); VariaveisGlobais.setLatitude(loc.getLatitude()); } public void onproviderdisabled(string provider) { return; } public void onproviderenabled(string provider) { return; } public void onstatuschanged(string provider, int status, Bundle extras) { return; } } Quadro 15 - Classe GPSLocationListener O método onlocationchanged garante que sempre que houver alteração com relação os valores de latitude e longitude, estes são atualizados na classe VariaveisGlobais. Esta
44 43 classe é utilizada para manter valores disponíveis entre as diversas activities do protótipo. O quadro 16 apresenta o código fonte da classe VariaveisGlobais. package br.com.gsms; public class VariaveisGlobais { private static double latitude = 0.0d; private static double longetitude = 0.0d; public static double getlatitude() { return latitude; } public static void setlatitude(double latitude) { VariaveisGlobais.latitude = latitude; } public static double getlongetitude() { return longetitude; } public static void setlongetitude(double longetitude) { VariaveisGlobais.longetitude = longetitude; } } Quadro 16 - Classe VariaveisGlobais Selecionar número na agenda O caso de uso UC02 apresenta a listagem de contatos da agenda com seus respectivos contatos e permite o usuário selecionar um para preencher o campo de número de destino ao pressionar o contato.
45 44 Figura 10 - Agenda A base de contatos nativo do celular é acessada através do primeiro botão ao lado do campo de número de destino. Ao clicar no botão é inicializada a activity ContatosActivity apresentada no quadro 11. public class ContatosActivity extends ListActivity { ArrayList<String> arrcontatos = new ArrayList<String>(); ArrayList<String> arrnumeros = new ArrayList<String>(); String[] CONTATOS; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); Cursor people = getcontentresolver().query(contactscontract.contacts.content_uri,//tabela null, ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1", //Restrição null, ContactsContract.Contacts.DISPLAY_NAME + " ASC"); //Order By while(people.movetonext()) { String displayname = people.getstring(people.getcolumnindex(phonelookup.display_name)); String contactid = people.getstring(people.getcolumnindex(phonelookup._id)); Cursor phonenumbers = getcontentresolver().query(phone.content_uri, null, Phone.CONTACT_ID + " = " + contactid, null, null); while (phonenumbers.movetonext()){
46 45 String number = phonenumbers.getstring(phonenumbers.getcolumnindex(phone.number)); String type = phonenumbers.getstring(phonenumbers.getcolumnindex(phone.label)); if (type == null type.equals("")){ type = "Telefone"; } arrcontatos.add(displayname+" - "+type+": "+number); arrnumeros.add(number); } phonenumbers.close(); } people.close(); CONTATOS = arrcontatos.toarray(new String[arrContatos.size()]); setlistadapter(new ArrayAdapter<String>(this, R.layout.contacts, CONTATOS)); ListView lv = getlistview(); //Listener lv.setonitemclicklistener(new AdapterView.OnItemClickListener() public void onitemclick(adapterview<?> av, View v, int pos, long id) { onlistitemclick(v,pos,id); } }); } lv.settextfilterenabled(true); Quadro 17 - Contatos Activity A activity ContatosActivity tem a herança da classe ListActivity, esta que contempla os tratamentos necessários para apresentar uma lista e espera que seja atribuído valores para serem apresentados. A extração dos contatos da base nativa é realizada por um cursor definido pela seleção disposta no método getcontentresolver().query para extrair os dados. Um restrição, ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1", foi utilizada para que somente contatos com telefones cadastrados sejam apresentados Selecionar localização O caso de uso UC07, selecionar localização é inicializado quando o botão de mesmo nome é pressionado chamando da atividade LocalizacaoActivity. Esta estende a classe MapActivity, ou seja, é uma atividade especial voltando a apresentação de mapas.
47 46 Figura 11 - Funcionalidade selecionar localização O usuário manipula a localização efetuando um toque longo em cima do mapa. Esta ação dispara o método do listener, onlongpress atualizando o ponto que deve ser desenhado o alfinete (figura 11). O aplicativo executa o método usarloc apresentado no quadro 18 caso seja pressionado o botão Usar Localização. Este método extrai a localização do ponto selecionando enviando a latitude e longitude para atividade que chamou a LocalizacaoActivity. private void usarloc() { Intent data = new Intent(); data.putextra("atividade", "usarloc"); data.putextra("longitude", (new Double(gp.getLongitudeE6() / 1E6)).toString()); data.putextra("latitude", (new Double(gp.getLatitudeE6() / 1E6)).toString()); //data.putextra("valor", longstring); setresult(2, data); finish(); } Quadro 18 - Método usarloc Na activity MensagemActivity é realizado o tratamento na retorno a esta atividade
G-SMS: Protótipo de uma aplicação de envio de SMS georeferenciadas
G-SMS: Protótipo de uma aplicação de envio de SMS georeferenciadas Carlos Roberto Bender Acadêmico Mauro Marcelo Mattos - Orientador Roteiro Introdução/Objetivos Fundamentação teórica Desenvolvimento do
TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS
TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS Uma activity é um componente do aplicativo que fornece uma tela com o qual os usuários podem interagir. Uma aplicação geralmente consiste de múltiplas activities,
FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID
FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID Roteiro Introdução Fundamentação teórica Desenvolvimento Conclusões Introdução Plataformas
Descrição geral do Android
Descrição geral do Android (PDM) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Utilização Home screen: Área de notificações Múltiplas páginas
Introdução à Programação Android: LocationManager
Introdução à Programação Android: LocationManager Guilherme Antonio Borges guilhermeborges.pf@gmail.com Apresentação dos Exercícios 1. Criação de uma tela menu simples que acessa através de um evento em
Curso online de Fundamentos em Android. Plano de Estudo
Curso online de Fundamentos em Android Plano de Estudo Descrição do programa A Certificação Android ensina como usar as ferramentas necessárias para projetar e implantar aplicativos Android para dispositivos
Android I N T R O D U Ç Ã O À P R O G R A M A Ç Ã O P R O F E S S O R L E O N A R D O C. R. S O A R E S - L A R B A C K
Android I N T R O D U Ç Ã O À P R O G R A M A Ç Ã O P R O F E S S O R L E O N A R D O C. R. S O A R E S - L A R B A C K Introdução O Android é a resposta da Google ao mercado crescente de dispositivos
Módulo I - Introdução. Faculdade Christus Sistemas de Informação 24/09/2010. Carlos Eugênio Torres Engenheiro de Informática
Módulo I - Introdução Aula 3 Carlos Eugênio Torres Engenheiro de Informática http://cetorres.com Faculdade Christus Sistemas de Informação 24/09/2010 Graduado em Ciência da Computação pela UFC, Brasil
CIDADÃO FISCAL: APLICATIVO PARA A ABERTURA E ACOMPANHAMENTO DE PROCESSOS NO SETOR DE OUVIDORIA DA PREFEITURA MUNICIPAL DE BLUMENAU
UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE SISTEMAS DE INFORMAÇÃO - BACHARELADO CIDADÃO FISCAL: APLICATIVO PARA A ABERTURA E ACOMPANHAMENTO DE PROCESSOS NO SETOR DE OUVIDORIA DA PREFEITURA MUNICIPAL DE
Computação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Android Android é um sistema operacional para dispositivos móveis Kernel Linux, drivers e bibliotecas do
Programação para a Plataforma Android Aula 13. Localização
Programação para a Plataforma Android Aula 13 Localização O que são serviços baseados em localização? Como usar a API de mapas do Google? Como sobrepor diferentes visões a um mapa? Como integrar o mapa
Programação para Dispositivos Móveis
Programação para Dispositivos Móveis Professor Ariel da Silva Dias Apresentação Android e IDEs Por que estudar programação para dispositivos móveis? Linha histórica da indústria durante os séculos Feudalismo
De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software
AJA Software www.ajasoftware.wordpress.com De Olho na Pista Documento de Arquitetura Confidencial De Olho na Pista, 2013 1 Sumário 1. Introdução 3 2. Metas e Restrições da Arquitetura 3 3. Padrão da Arquitetura
Android OLÁ MUNDO MÓVEL. Prof. Dr. Joaquim assunção.
Android OLÁ MUNDO MÓVEL Prof. Dr. Joaquim assunção. Parte 1/3 SDK e Android Studio Java SE Development Kit Download and Install JDK 6 http://www.oracle.com/technetwork/java/javase/downloads/index.html
Programa Analítico de Disciplina INF311 Programação para dispositivos móveis
0 Programa Analítico de Disciplina Departamento de Informática - Centro de Ciências Exatas e Tecnológicas Número de créditos: Teóricas Práticas Total Duração em semanas: 15 Carga horária semanal 3 1 Períodos
Programação para Dispositivos Móveis
Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 05 Programando formularios, activities e intents. Dalton Martins dmartins@gmail.com São Paulo, Março, 2012
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS A classe Intent Professor: Danilo Giacobo OBJETIVOS DA AULA Alternar entre múltiplas telas de uma aplicação Android. Conhecer a classe Intent. Associar as telas do
Android MapBr. com foco na manipulação de mapas usando interfaces de programação de aplicativos do Google
Um estudo sobre a plataforma Android com foco na manipulação de mapas usando interfaces de programação de aplicativos do Google Acadêmico Marco Aurélio de Oliveira Weiss Orientador Dalton Solano dos Reis
Introdução ao Desenvolvimento para Dispositivos Móveis
PARTE II Introdução ao Desenvolvimento para Dispositivos Móveis Victor Adriel de Jesus Oliveira INF - UFRGS Summary PARTE I Introdução a Plataformas Móveis Padrões para o Desenvolvimento de Aplicativos
Programação para Dispositivos Móveis
Programação para Dispositivos Móveis Professor Ariel da Silva Dias Desenvolvendo para Android Por que estudar programação para dispositivos móveis? Linha histórica da indústria durante os séculos Feudalismo
Especificação dos Requisitos do Software UFPI Maps 1.0. Autores:4A Team Alceu Medeiros Antonio Lima AntonioHelves Fernando Assunção
UFPI Maps 1.0 Autores:4A Team Alceu Medeiros Antonio Lima AntonioHelves Fernando Assunção Teresina PI Julho de 2013 1 UFPI Maps 1.0 Sumário 1. Introdução... 3 1.1. Objetivo deste documento... 3 1.2. Escopo
Desenvolvedor Android: Avançado. Plano de Estudo
Desenvolvedor Android: Avançado Plano de Estudo Descrição do programa A Certificação Android fornece as ferramentas necessárias para projetar e implementar aplicativos para dispositivos Android, com base
Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ
Introdução ao Android Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ O que é o Android? Sistema operacional móvel, baseado numa versão modificada do Linux. Código aberto: qualquer pessoa pode
Documento de Projeto de Software
Documento de Projeto de Software Histórico de revisões do Documento Versão Data Autor Descrição (XX.YY) (DD/MMM/YYYY) 1.0 25/05/2018 Pablo e Vanessa Criação do documento Documento de Especificação de Requisitos
Programação para Dispositivos Móveis
Programação para Dispositivos Móveis Professor Ariel da Silva Dias Desenvolvendo para Android Android Core Uma aplicação Android é formada por um conjunto de componentes; A este conjunto damos o nome de
Apresentação Introdução Ambiente de desenvolvimento Aplicativos. Minicurso Android. Dia 1. Adão Henrique R. Justo Filho UFC - DETI 16/10/2012
Dia 1 UFC - DETI 16/10/2012 Conteúdo 1 Apresentação Objetivos Requisitos Metodologia Referências 2 Introdução O que é? Quem usa? Por que usar? 3 Ambiente de desenvolvimento Ferramentas Hello World! 4 Aplicativos
SISTEMA OPERACIONAL WINDOWS PHONE
Manual do Usuário SISTEMA OPERACIONAL WINDOWS PHONE Copyright GVT 2015 1 Versão 1.4.2 www.gvtcloud.com.br 1 Cloud... 3 2 Instalação do Cloud... 4 3 Configuração e uso dos componentes Cloud... 7 3.1 Tela
Tutorial Android Speech
Tutorial Android Speech O sistema operacional Android já dispõe de uma funcionalidade interna para síntese e reconhecimento de voz que pode ser incorporado a qualquer aplicação. Essa funcionalidade utiliza
LAUDO DE ANÁLISE DA PROVA DE CONCEITO
LAUDO DE ANÁLISE DA PROVA DE CONCEITO Aos vinte dias do mês de dezembro de dois mil e dezoito, às nove horas, na sede do CM Granpal, localizado na avenida das Indústrias, quatrocentos e sessenta e nove,
Geolocalização. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos
2ª Edição Ricardo R. Lecheta
Google Aprenda a criar aplicações para dispositivos móveis com o Android SDK 2ª Edição Ricardo R. Lecheta Novatec Sumário Agradecimentos... 15 Sobre o autor... 16 Prefácio... 17 Capítulo 1 Introdução ao
GERADOR DE INTERFACES GRÁFICAS PARA IOS GABRIEL SEBASTIAN RAMIREZ JOYCE MARTINS
GERADOR DE INTERFACES GRÁFICAS PARA IOS GABRIEL SEBASTIAN RAMIREZ JOYCE MARTINS Introdução Objetivos Fundamentação teórica Especificação Implementação Operacionalidade Resultados e discussão Conclusão
SISTEMA PARA AUTOMATIZAÇÃO RESIDENCIAL CONTROLADO POR
SISTEMA PARA AUTOMATIZAÇÃO RESIDENCIAL CONTROLADO POR COMANDO DE VOZ Ronaldo Rother Prof. Francisco Adell Péricas, Orientador Roteiro da Apresentação 1. Introdução e Objetivos 2. Fundamentação teórica
FURBMOBILE: UMA APLICAÇÃO PARA VISUALIZAÇÃO E ACOMPANHAMENTO DA MATRIZ CURRICULAR
Departamento de Sistemas e Computação FURB Curso de Ciência da Computação Trabalho de Conclusão de Curso 2016/1 FURBMOBILE: UMA APLICAÇÃO PARA VISUALIZAÇÃO E ACOMPANHAMENTO DA MATRIZ CURRICULAR Acadêmico:
MVM Mattos Virtual Machine. Andrey de Oliveira Prof. Mauro Marcelo Mattos, Doutor FURB 2012/2
MVM Mattos Virtual Machine Andrey de Oliveira Prof. Mauro Marcelo Mattos, Doutor FURB 2012/2 Roteiro Introdução Objetivos Fundamentação Teórica Desenvolvimento Resultado e Discussão Conclusão Extensões
Guia Rápido Aplicativo TecViewer. Compatível com toda linha T1/THK. Obrigado pela preferência!
Guia Rápido Aplicativo TecViewer Versão 1.0 Compatível com toda linha T1/THK Obrigado pela preferência! Tenha certeza de que estamos sempre trabalhando com empenho para entregar a você equipamentos e serviços
5.0 GUIA PRÁTICO. Flash Câmera frontal 2 Carregar a bateria. Diminuir/ Aumentar volume Tecla Liga/ Desliga. Início. Visão geral. Voltar.
GUIA PRÁTICO 1 Colocar ou retirar a tampa traseira. Flash Câmera frontal 2 Carregar a bateria. 5.0 Diminuir/ Aumentar volume Tecla Liga/ Desliga SIM2 Voltar Início Visão geral 3 Inserir ou retirar o SIM.
O conteúdo da aplicação poderá ser administrado através do Backend - Painel Administrativo.
fmc.digital O que você imaginar nós fazemos. O que não imaginar nós vamos pensar. Manual de Utilização Painel Administrativo FMC Dashboard Informações Gerais O conteúdo da aplicação poderá ser administrado
Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan
Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada
Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan
Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada
Figura 16 Niagara - Visão de grupos de notas.
Conclusão 6 Conclusão 6.1 Trabalhos Relacionados Dentre as funcionalidades fornecidas pela interface gerada pelo framework, em destaque está a possibilidade do zoom livre. Disponibilizar esta funcionalidade
Laboratório 01 NetBeans
Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 2o. Semestre de 2017 Prof. Renato Pimentel Atividade individual. Laboratório 01 NetBeans 1 Introdução Os
informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare).
1 Introdução 1.1 Contextualização Recentemente, tem-se percebido um movimento de integração de comunidades físicas e comunidades virtuais. As pessoas utilizam cada vez mais a Internet para se comunicar
Capítulo 02: Cadastro de Alunos
Capítulo 02: Cadastro de Alunos Instrutor Programador desde 2000 Aluno de doutorado Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio
Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ
Introdução ao Android SECAP 2014 Prof. Rone Ilídio - UFSJ O que é o Android? Sistema operacional móvel, baseado numa versão modificada do Linux. Código aberto: qualquer pessoa pode baixar e modificar Máquina
5.2 GUIA PRÁTICO 5085N. Flash Câmera frontal. Sensor. Aumentar/ Diminuir volume Tecla Liga/ Desliga. Início/ sensor de impressão digital.
1 Carregar a bateria. GUIA PRÁTICO Sensor Flash Câmera frontal Aumentar/ Diminuir volume Tecla Liga/ Desliga 2 Inserir ou retirar o SIM. 3 Inserir ou retiar o cartão microsd. 5.2 Início/ sensor de impressão
MANUAL DE INSTALAÇÃO SISTEMA DE GERÊNCIA CONSCIUS
MANUAL DE INSTALAÇÃO SISTEMA DE GERÊNCIA CONSCIUS 1 ÍNDICE ÍNDICE... 2 1. INTRODUÇÃO... 3 2. REQUISITOS... 3 2.1 Requisitos mínimos para utilização do instalador... 3 2.2 Requisitos mínimos para instalação
Professor: Rogério Benedito de Andrade. Formação:
Professor: Rogério Benedito de Andrade Formação: Licenciatura em Informática (Fatec) Especialização em Educação (Univap) Bacharel em Computação (Univap) Objetivos: Implementar evento onmapclick Adicionar
Guia do Usuário do Rescue Lens
Guia do Usuário do Rescue Lens Índice Rescue Lens Resumo...3 Requisitos de sistema para o Rescue Lens...3 Restrições e limitações do Console web do Lens...4 Iniciando uma sessão do Rescue Lens...5 Iniciar
CLIPPING SERVICE. Clipping Service 2014 Todos direitos reservados
CLIPPING SERVICE O que é o Android? O Android, na verdade, é um sistema operacional para aparelhos móveis como celulares (nesse caso, smartphones) e tablets. É ele que define o visual, os recursos e funcionalidades
COLETA E CAPTURA DE TRAJETÓRIAS ATRAVÉS DE APLICAÇÕES GENÉRICAS PARA DISPOSITIVOS MÓVEIS
COLETA E CAPTURA DE TRAJETÓRIAS ATRAVÉS DE APLICAÇÕES GENÉRICAS PARA DISPOSITIVOS MÓVEIS Jean Holderbaum 1* ; Marilia Ribeiro da Silva 1* ; Vanessa Rolim 1* ; Fernando José Braz 2 ; Eduardo da Silva 2
AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.
AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos
5.0. Guia Prático 5 4G. Luz de notificação 2 Inserir ou retirar a. Tecla Liga/ Desliga Aumentar/ Diminuir volume. tampa traseira. bateria.
1 1 Inserir ou retirar a tampa traseira 5 4G Guia Prático Luz de notificação 2 Inserir ou retirar a bateria 2 5.0 Tecla Liga/ Desliga Aumentar/ Diminuir volume 3 Carregar a bateria * 4 4 4 Inserir ou retirar
Manual SIGOSMS Aplicação de Gerenciamento e Envio SMS
Manual SIGOSMS Aplicação de Gerenciamento e Envio SMS Sumário Introdução...3 Visão Geral do Software...4 Regras SMS...5 Ativar Inicialização Automática...6 Configurações...7 Log...8 Aplicação de Gerenciamento
Desenvolvendo aplicações Java
José Roberto Madureira Junior Adaní Cusin Sacilotti Adriana Rodrigues Reginaldo Sacilotti Desenvolvendo aplicações Java Primeira Edição São Paulo 2017 Sumário 1 INTRODUÇÃO AO JAVA... 1 1.1 A PLATAFORMA
Ferramenta 1 -NetBeans 8.0
Nome do laboratório: Laboratório de Programação Ferramenta 1 -NetBeans 8.0 Elaborado por: Osmar de Oliveira Braz Junior Descrição NetBeans é um ambiente de desenvolvimento integrado (IDE Integrated Development
Manual. do Cliente. Aplicativo Web
Manual do Cliente Aplicativo Web Sumário ACESSANDO A VAPTUBER WEB... VISÃO GERAL... NOVA ENTREGA... º PASSO... º PASSO... 6 º PASSO... 7 º PASSO... 8 º PASSO... 8 SOLICITAÇÃO PENDENTE... 9 ENTREGAS...
SISTEMA OPERACIONAL - ANDROID
Manual do Usuário SISTEMA OPERACIONAL - ANDROID Copyright GVT 2015 Versão 1.0.0 www.gvtcloud.com.br 1 1 Cloud... 3 2 Instalação do Cloud... 4 3 Configuração e uso dos componentes Cloud... 7 3.1 Conta e
Moodle FAMUR MANUAL DO ACADÊMICO
Moodle FAMUR Versão 2.14 MANUAL DO ACADÊMICO Acesse: www.faculdademurialdo.com.br ou moodle.faculdademurialdo.com.br/moodle/ Versão do Manual: 012015 Sumário Moodle, o que é? Como acessar o Moodle Interface
Histórico de alterações
Documento de requisitos v1.0 Nome do projeto : Viagem Mais Segura Histórico de alterações Data Versão Descrição Autor 12/09/2015 1.0 Versão inicial do documento AVC 1. Descrição do sistema O sistema Viagem
VISEDU: JOGO DE REALIDADADE AUMENTADA DE LETRAS COM CONTEÚDO DINÂMICO
VISEDU: JOGO DE REALIDADADE AUMENTADA DE LETRAS COM CONTEÚDO DINÂMICO Aluna: Vivian de Lima Panzenhagen Orientador: Prof. Dalton Solano dos Reis, M. Sc Roteiro Introdução Objetivos Fundamentação Teórica
Universidade Federal do Paraná
Universidade Federal do Paraná Departamento de Informática Ciência da Computação Tópicos em Sistemas Embarcados Android Prof. Eduardo Todt 2016 objetivos Com Android studio criar primeira app Projetar
Manual de Uso. Aplicativo da Escola Canarinho. Agenda Digital
Manual de Uso Aplicativo da Escola Canarinho Agenda Digital MANUAL DE USO DO APLICATIVO DA ESCOLA CANARINHO AGENDA DIGITAL SUMÁRIO FEED DE NOTÍCIAS... 3 DOWNLOAD DE IMAGENS... 4 RELATÓRIO DIÁRIO... 5 PENDÊNCIA:...
AULA 1 INTRODUÇÃO AO JAVA
AULA 1 INTRODUÇÃO AO JAVA Ao término dessa aula você terá aprendido: História e características do Java Ambientes e plataformas Java O Java é a base para praticamente todos os tipos de aplicações em rede
PROTÓTIPO DE APLICATIVO PARA ACOMPANHAMENTO E CONTROLE DE
PROTÓTIPO DE APLICATIVO PARA ACOMPANHAMENTO E CONTROLE DE GLICEMIA F U R B - U N I V E R S I D ADE R E GIONAL DE BLUMENAU C U R S O D E SISTEMAS D E INFORMAÇÃO A C A D Ê M I CO: T I A GO DIONESTO WILLRICH
PROPOSTA DE UM PADRÃO DE PROJETO PARA ANDROID UTILIZANDO A WEB
PROPOSTA DE UM PADRÃO DE PROJETO PARA ANDROID UTILIZANDO A WEB Aluno: Pedro Paulo S. Freitas Orientador: Ricardo Augusto Rabelo Sumário Introdução Motivação e Justificativa Trabalhos relacionados Plataforma
Enviar imagens de uma câmera para um iphone (PowerShot SX60 HS)
Enviar imagens de uma câmera para um iphone (PowerShot SX60 HS) IMPORTANTE Na explicação a seguir, os procedimentos de configuração de iphone são indicados pelo ícone e os procedimentos de configuração
TUTORIAL DE INSTALAÇÃO DO AMBIENTE DE DESENVOLVIMENTO ANDROID NO UBUNTU
TUTORIAL DE INSTALAÇÃO DO AMBIENTE DE DESENVOLVIMENTO ANDROID NO UBUNTU Wellyson Vieira Dias 1. Introdução: 1.1. Componentes do ambiente de desenvolvimento: - IDE Android Studio com SDK. - API Level 19
Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo
Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo Versão do Manual: 2.4 Versão do Aplicativo: 2.17.2 Conteúdo 1. Instalação do AFV...03 2. Configurações...04 3. Recebendo as tabelas...05
ESTUDO DE PLATAFORMAS PARA A CONSTRUÇÃO DE APLICAÇÕES MÓVEIS. Gabriel de Biasi¹; Nilton Cézar de Paula²
ESTUDO DE PLATAFORMAS PARA A CONSTRUÇÃO DE APLICAÇÕES MÓVEIS Gabriel de Biasi¹; Nilton Cézar de Paula² ¹ Acadêmico de Ciência da Computação e bolsista de Iniciação Científica, e-mail: biasi131@gmail.com
Firebase. Acesse o site https://firebase.google.com/?hl=pt-br Acesse o menu Go to Console. Acesse com uma conta Google ou crie uma conta.
Firebase Acesse o site https://firebase.google.com/?hl=pt-br Acesse o menu Go to Console. Acesse com uma conta Google ou crie uma conta. Adicione um projeto. Crie um projeto Para usar o Firebase num projeto
Instalação JDK. Joyce França. Professora de Ciência da Computação - IFNMG
Instalação JDK Joyce França Professora de Ciência da Computação - IFNMG Máquina Virtual Java utiliza-se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação,
MANUAL PLATAFORMA DO USUÁRIO. Versão 1.0
MANUAL PLATAFORMA DO USUÁRIO Versão 1.0 23/10/2018 SUMÁRIO COMO ACESSAR A PLATAFORMA DE USUÁRIO? 3 Criando um Cadastro 3 Acessando a Plataforma 4 Recuperando a Senha 6 Baixando e Acessando pelo Celular
Aviso. O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio.
Aviso O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio. Nenhuma parte desta publicação pode ser reproduzida nem transmitida
Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli
Técnico em Informática Web JavaScript Profª Ana Paula Mandelli anapaula_mandelli@hotmail.com Para o JavaScript - NetBeans O NetBeans é um ambiente de desenvolvimento integrado (IDE) Java desenvolvido pela
SFA Android. Apresentação inicial do produto e principais características. Projeto Android. Baseado na Release Versão 3.
SFA Android Apresentação inicial do produto e principais características Baseado na Release 13.09.039 Versão 3.0 24/09/2013 Linha do Tempo - Android Histórico de Desenvolvimento Principais Funcionalidades
Estudo do Ambiente de Programação Arduino Software (IDE) com Intel Galileo Gen2. Apostila de acompanhamento para o aluno.
Estudo do Ambiente de Programação Arduino Software (IDE) com Intel Galileo Gen2 Apostila de acompanhamento para o aluno. 1 Conteúdo Conteúdo... 2 1. Introdução... 3 2. Informações Gerais... 3 3. Sketches...
Instalação JDK 10/03/2017
1 Instalação JDK 10/03/2017 Máquina Virtual Java utiliza-se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação, responsável por traduzir o que sua aplicação
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Componentes Visuais Avançados Professor: Danilo Giacobo OBJETIVOS DA AULA Descobrir os componentes visuais mais sofisticados e utilizar o máximo de seus recursos Conhecer
ESPECIFICAÇÕES PARA MANUAL DE USUÁRIO ELSYS HOME
ESPECIFICAÇÕES PARA MANUAL DE USUÁRIO ELSYS HOME PRINCIPAIS FUNÇÕES Visualizar vídeos em tempo real em smartphone através do Wi-Fi ou redes móveis; Função Instala Fácil, que permite a busca e instalação
Tutorial sobre Activity: Como carregar um fragmento do mapa para a tela do celular
Tutorial sobre Activity: Como carregar um fragmento do mapa para a tela do celular Esse tutorial tem por objetivo mostrar como criar uma activity que carrega um fragmento do mapa do google maps para a
Prezado Aluno, Preparamos este guia rápido, contendo orientações para você explorar e praticar as funções básicas disponíveis.
1 Prezado Aluno, Bem-vindo ao ambiente virtual destinado às comunidades de suas disciplinas. Trata-se da plataforma Moodle, criada para disponibilizar a você um espaço colaborativo, com recursos interessantes
Aplicativo Android baseado em realidade aumentada para recomendações de locais. Acadêmico Bruno Kewitz Demarchi Orientador Marcel Hugo
Aplicativo Android baseado em realidade aumentada para recomendações de locais Acadêmico Bruno Kewitz Demarchi Orientador Marcel Hugo Roteiro Introdução Fundamentação teórica Desenvolvimento Resultados
Fa u amen o E e ôn co CASSEMS
Fa u amen o E e ôn co CASSEMS 1 Conteúdo 1. Informações Iniciais... 3 1.1. Sobre o documento... 3 1.2. Organização deste Documento... 3 2. Orientações Básicas... 3 2.1. Sobre o Faturamento Digital... 3
Nova. Tecnologia em Atendimento. Manual do usuário
Nova Tecnologia em Atendimento Manual do usuário Índice Introdução Arquitetura e Requisitos de Software Tela de Login Página Principal Acesso Fácil Funções Básicas Utilizando Filtros Solicitação de Serviço
Índice. 1. Introdução Instalação: Eclipse e Android Primeira aplicação em Android... 11
Índice 1. Introdução... 03 2. Instalação: Eclipse e Android... 04 3. Primeira aplicação em Android... 11 1. Introdução Android trata-se de um sistema operacional baseado em Linux. No dia 05 de novembro
Desenvolvimento de um aplicativo básico usando o Google Android
Desenvolvimento de um aplicativo básico usando o Google Android (Intent e Intent Filter) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus
Projeto GoHome Tutorial Sobre o serviço do Google Maps no Android
Projeto GoHome Tutorial Sobre o serviço do Google Maps no Android Moisés Batista Bispo Teresina-PI 1- Breve Descrição Este tutorial tem como objetivo, adicionar de forma simples e prática, um mapa ao seu
Guia Rápido Aplicativo TW Viewer. Compatível com toda linha TW. Obrigado pela preferência!
Guia Rápido Aplicativo TW Viewer Versão 1.0 Compatível com toda linha TW Obrigado pela preferência! Tenha certeza de que estamos sempre trabalhando com empenho para entregar a você equipamentos e serviços
Módulo 3 - Intenções. SECAP 2014 Prof. Rone Ilídio - UFSJ
Módulo 3 - Intenções SECAP 2014 Prof. Rone Ilídio - UFSJ Intenção é um pedido que uma aplicação faz ao Android O Android executa intenções Um intenção pode ser utilizada para: Uma mensagem para o SO Abrir
Sistema de Telemetria ES Manual Operacional CFC - Out/2018. Monitoramento de Aulas Práticas
01 Monitoramento de Aulas Práticas Versão 1.6 Outubro de 2018 Manual prático de acesso e operação do Sistema de Monitoramento de Aulas Práticas Veiculares, desenvolvido pela Megamidia Sistemas para os
Centro de Suporte. (Sistema Android) RCAMail Manual de Utilização Página 1
(Sistema Android) Manual de Utilização Página 1 Sumário 1. Acesso ao no Android (aplicativo E-mail )... 4 2. Tela inicial do aplicativo E-mail e suas pastas... 5 2.1 Pasta Entrada... 5 2.2 Pasta Rascunhos...
VICON SAGA MOBILE Guia de Referência
VICON SAGA MOBILE Guia de Referência Menu de Opções Menu de Opções Opção Projetos Meus Registros Navegação GPS Preferências Logout Descrição Lista de projetos em que o usuário está cadastrado na Plataforma
Manual de Utilização
Manual de Utilização Versão 1.0.1 Sumário 1 Funções do Emissor... 3 1.1 Aba Inicial... 4 1.2 Aba Sistema... 4 1.2.1 Mensagem Sistema... 5 1.2.2 Extras... 5 1.2.3 Contingência... 6 1.2.4 Execução... 6 1.3ContingênciaOffline...8
SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO
SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO Edilene de Fátima Vetorato 1, Osvaldo Cesar Pinheiro de Almeida 2 1 Fatec, Botucatu, SP, Brasil. E-mail: edilenefv@hotmail.com
Manual de Utilização
Manual de Utilização Versão 1.0 Sumário 1 Funções do Emissor... 3 1.1 Aba Inicial... 4 1.2 Aba Sistema... 5 1.2.1 Mensagem Sistema... 5 1.2.2 Modo de Emissão... 6 1.2.3 Execução... 6 1.3 Aba Retornos...
LedBackup - Gerenciador de Backup.: Transmissão :.
LedBackup - Gerenciador de Backup.: Transmissão :. 1 - INTRODUÇÃO A partir da versão 3.34.2 a Ledware reformulou o envio de backups para a análise. O cliente ao enviar o backup, receberá um protocolo por
Introdução ao Desenvolvimento para Sistema Operacional Android
Dr. prof.sylvio@fatecriopreto.edu.br Conteúdo: 1) Introdução ao Android e Mercado de Dispositivos Móveis; 2) Plataforma: 2.1) Arquitetura; 2.2) Framework; 2.3) Bibliotecas; 2.4) Android Runtime; 2.5) Linux