36
Erisvaldo Gadelha Saraiva Júnior Faculdade de Tecnologia de João Pessoa (FATEC-JP) Especialização em Desenvolvimento para Dispositivos Móveis Disciplina: Tecnologias para Dispositivos Móveis Android (Parte 3) E-mail: [email protected] Site: http://erisvaldojunior.com Twitter: @erisvaldojunior

Android Aula 3

Embed Size (px)

DESCRIPTION

Aula 3 de Android para a disciplina Tecnologias para Dispositivos Móveis da FATEC (João Pessoa - PB)

Citation preview

Page 1: Android Aula 3

Erisvaldo Gadelha Saraiva Júnior

Faculdade de Tecnologia de João Pessoa (FATEC-JP)Especialização em Desenvolvimento para Dispositivos MóveisDisciplina: Tecnologias para Dispositivos Móveis

Android (Parte 3)

E-mail: [email protected]: http://erisvaldojunior.com

Twitter: @erisvaldojunior

Page 2: Android Aula 3

Roteiro da Aula

Recursos e Técnicas importantes para Android

TÉCNICAS E EXEMPLOS

LOG, LOCALES E WIDGETS

LOCALIZAÇÃO E MAPAS

Page 3: Android Aula 3

TÉCNICAS E EXEMPLOS

Diversas Técnicas e Exemplos de Código em Android

Page 4: Android Aula 3

Spla

sh S

cre

en

Como criar uma Splash ScreenBasta ter uma Activity declarada na categoria LAUNCHER noAndroidManifest.xml que, após 3 segundos, invoca outra.

SplashScreen.java

AndroidManifest.xml

Page 5: Android Aula 3

Spla

sh S

cre

en

Exemplo Clássico de Splash ScreenImagem no meio da tela

splash.xml

Page 6: Android Aula 3

Tela

Ch

eia

(Fu

ll Sc

ree

n)

Activity em Tela Cheia (Full Screen)Invocar o método abaixo no onCreate() da Activity ou, opcionalmente, definir

um android:theme de FullScreen no AndroidManifest.xml

Modo 1 – Chamar setFullScreen() no onCreate() da Activity

Modo 2 – Definir android:theme na tag <activity> do AndroidManifest.xml

Page 7: Android Aula 3

Leit

ura

de

XM

Lorg.xml.sax.helpers.DefaultHandlerCria-se uma classe que herda de Default Handler eimplementa-se os métodos startElement(), characters() eendElement().

Page 8: Android Aula 3

Ob

jeto

s In

ten

tObjetos IntentSão compostos por Component Name, Action, Data e Category.

Page 9: Android Aula 3

Invo

can

do

ap

licaç

õe

s G

oo

gle Intents invocando aplicações Google

Page 10: Android Aula 3

Log, Locales e Widgets

Log, Internacionalização e Widgets em Android

Page 11: Android Aula 3

Trab

alh

and

o c

om

Lo

gandroid.util.LogFerramenta de Log do Android. Permite imprimir logs de atécinco tipos:

Page 12: Android Aula 3

Trab

alh

and

o c

om

Lo

gLogCatPermite a visualização do Log. Disponível na perspectiva deDebug do ADT Plugin no Eclipse.

Page 13: Android Aula 3

Inte

rnac

ion

aliz

ação

Adaptando a aplicação para diferentes linguagensO primeiro passo é planejar como a aplicação deve aparecer(textos e imagens) em diferentes regiões e línguas. Nesseplanejamento, estabelece-se também um comportamento/localpadrão.

Page 14: Android Aula 3

Inte

rnac

ion

aliz

ação

Organizando os recursosO segundo passo é mapear, para cada linguagem/país suportado,o caminho do arquivo strings.xml que irá conter os textos naquelalinguagem bem como a pasta de imagens específica para alinguagem desejada.

Dica: pode-se criar, por exemplo, res/drawable-de/ para englobartodos os aparelhos com a língua definida como Alemão,independente da sua localização.

Page 15: Android Aula 3

Inte

rnac

ion

aliz

ação

Criando o strings.xml para cada linguagemCria-se um novo “Android XML File” a partir do plugin ADT noEclipse. No assistente, defin-se o nome do arquivo comostrings.xml e seleciona-se a configuração “Language” com umqualificador de duas letras indicando a linguagem desejada. Issofará com que o assistente crie o arquivo na pasta correta.

Page 16: Android Aula 3

Inte

rnac

ion

aliz

ação

Criando o strings.xml para cada linguagem

Page 17: Android Aula 3

Inte

rnac

ion

aliz

ação

Testando a aplicação no emulador

Page 18: Android Aula 3

Ap

p W

idge

ts

App Widgets

São aplicações em miniatura que podem ser embutidas emoutras aplicações (como a Home) e receber atualizaçõesperiódicas. São referenciadas como Widgets na interface dousuário.

Para criar um App Widget, necessita-se do seguinte:

• AppWidgetProviderInfo – objeto que descreve os metadados doWidget, como o layout, frequência de atualização e a classeAppWidgetProvider. É definido em XML;• AppWidgetProvider – Define os métodos básicos que permitem aprogramação do Widget. Baseado em eventos de Broadcast. Recebe-se mensagens de broadcast quando o App Widget é ativado,atualizado, desativado e removido.

Page 19: Android Aula 3

Ap

p W

idge

tsApp WidgetsAlém disso, é preciso definir o View Layout, correspondente aolayout inicial do App Widget, em XML.

Adicionalmente, pode-se implementar uma Activity de configuraçãodo App Widget. Trata-se de um Activity opcional que é abertoquando o usuário adiciona o Widget e permite que o usuáriomodifique as configurações do mesmo em tempo de criação.

Page 20: Android Aula 3

Ap

p W

idge

tsDeclarando-se um App WidgetPrimeiramente, declara-se a classe que herda deAppWidgetProvider no AndroidManifest.xml, conformemostrado abaixo.

• <receiver> – elemento que especifica o AppWidgetProvider usadopelo App Widget, através do atributo android:name;• <intent-filter> - inclui uma <action> que especifica que oAppWidgetProvider aceita o broadcast APPWIDGET_UPDATE;• <meta-data> - especifica o AppWidgetProviderInfo e é definidopelos atributos android:name e android:resource.

Page 21: Android Aula 3

Ap

p W

idge

tsDeclarando o AppWidgetProviderInfoDefine as características de um App Widget, como dimensõesmínimas, XML do Layout, frequência de atualização e,opcionalmente, uma Activity de configuração para serinstanciada quando da criação do App Widget.

• minWidth e minHeight especificam a área mínima requerida pelolayout do App Widget.;• updatePeriodMillis é o tempo de chamada do método onUpdate()do AppWidgetProvider. Deve ser longo para que não prejudique oconsumo de bateria;• initialLayout aponta para o arquivo de layout do Widget;• configure especifica a Activity de configuração que deve ser iniciadaquando o usuário adiciona o Widget. É opcional.

Page 22: Android Aula 3

Ap

p W

idge

tsCriando o layout de um App WidgetLayouts de App Widgets são baseados em RemoteViews. Estesnão suportam todos os tipos de layout e views. Um objetoRemoteView (e, consequentemente, um App Widget) sósuporta os seguintes layouts e views:

Page 23: Android Aula 3

Ap

p W

idge

tsCriando o layout de um App WidgetLayouts de App Widgets são baseados em RemoteViews. Estesnão suportam todos os tipos de layout e views. Um objetoRemoteView (e, consequentemente, um App Widget) sósuporta os seguintes layouts e views:

Page 24: Android Aula 3

Ap

p W

idge

tsUsando a classe AppWidgetProviderA classe AppWidgetProvider herda de BroadcastReceiver poisse trata de uma especialização para tratar os broadcasts paraApp Widgets. Quando um evento de broadcast para o AppWidget ocorre, um dos seguintes métodos é invocado:

• onUpdate() – chamado para atualizar o App Widget em intervalosdefinidos por updatePeriodMillis no AppWidgetProviderInfo.Também é chamado quando o usuário adiciona o Widget, excetoquando foi definido um Activity de configuração;• onDeleted() – Chamado quando o Widget é removido do seuaplicativo hospedeiro;• onEnabled() – chamado quando uma instância do App Widget écriada pela primeira vez;• onDisabled() – chamado quando a última instância do App Widgeté excluída do hospedeiro;• onReceive() – padrão de Broadcast Receivers. Geralmente não hánecessidade de implementar pois os métodos acima sãoautomaticamente invocados pelo AppWidgetProvider.

Page 25: Android Aula 3

Ap

p W

idge

tsExemplo de AppWidgetProviderApp Widget com um botão que inicia uma Activity quando éclicado.

Page 26: Android Aula 3

Ap

p W

idge

tsCriando uma Activity de configuraçãoPara permitir que o usuário realize configurações ao adicionarum App Widget, cria-se um Activity de configuração. EssaActivity é automaticamente chamada em tempo de criação doApp Widget.

Declarando o Activity de Configuração no AndroidManifest.xml

Declarando o Activity de Configuração no AppWidgetProviderInfo

Page 27: Android Aula 3

Ap

p W

idge

tsAtualizando o App Widget a partir do Activity de ConfiguraçãoApós realizar a configuração, o Activity tem a responsabilidadede atualizar o App Widget, conforme os passos abaixo.

1. Pega o ID do App Widget a partir do Intent que iniciou a Activity

2. Realiza as configurações necessárias

3. Ao completar a configuração, atualiza o App Widget.

4. Cria-se o Intent de retorno com o resultado da Activity e finaliza a Activity.

Page 28: Android Aula 3

Localização e Mapas

Integrando a sua aplicação com o Google Maps

Page 29: Android Aula 3

Loca

lizaç

ão e

Map

asandroid.location.LocationManagerAndroid provê acesso aos serviços de localização suportadospelo dispositivo através do pacote android.locator, que provêAPIs para determinar a localização do dispositivo.

Usa-se o método getSystemService() para obter uma instância deLocationManager. A partir desta, a aplicação pode fazer três coisas:

• Consultar a lista de todos os LocationProviders para saber qual foi aúltima localicação do usuário;• Registro/desregistro de atualizações periódicas da localização dousuário a partir de um provedor de local (especificado pelo critérioou nome);• Registro/desregistro de um dado Intent para ser lançado se odispositivo estiver a uma certa proximidade de um dado destino.

Page 30: Android Aula 3

Loca

lizaç

ão e

Map

asBiblioteca externa do Google MapsAtravés do pacote com.google.android.maps (parte do add-onGoogle APIs para Android SDK) é possível baixar e renderizarmapas do Google, com uma variedade de opções e controles.

A classe chave do pacote é com.google.android.maps.MapView, queé uma subclasse de ViewGroup. Um MapView mostra o mapa com osdados obtidos diretamente do serviço Google Maps.

• Quando o MapView está com foco, os toques e teclas sãocapturados para mover e efetuar zoom no mapa automaticamente,incluindo requisições de rede para obtenção de novas áreas domapa;• O MapView provê todos os elementos de interface necessáriospara controlar o mapa;• A aplicação também pode usar a classe MapView para desenhardiversos marcadores sobre o mapa.

Page 31: Android Aula 3

Loca

lizaç

ão e

Map

asRequisitando atualização de localizaçãoAtravés do método requestLocationUpdates() deLocationManager, passando um LocationListener comoparâmetro que deve implementar diversos métodos que sãoinvocados quando há mudança de localização ou status doserviço.

Os parâmetros de requestLocationUpdates() estão explicitados aseguir:

• O primeiro parâmetro é o tipo de provedor de localização a serusado, GPS_PROVIDER ou NETWORK_PROVIDER;• O segundo parâmetro é o tempo mínimo para notificaratualizações;• O terceiro parâmetro é a distância mínima para notificaratualizações;• Por fim, o quarto e último parâmetro é o LocationListener querecebe as chamadas callback de notificação das atualizações.

Page 32: Android Aula 3

Loca

lizaç

ão e

Map

asRequisitando atualização de localizaçãoExemplo de como implementar um LocationListener e utilizá-locom o método requestLocationUpdates() de LocationManager.Nesse exemplo, usa-se o Android Network Location Provider enão há tempo ou distância mínima para notificação (asnotificações serão tão frequentes quanto possível).

Page 33: Android Aula 3

Loca

lizaç

ão e

Map

asRequisitando permissões ao usuárioPara que se possa receber as notificações de localização, sejaatravés de NETWORK_PROVIDER ou GPS_PROVIDER, énecessário que essa permissão seja requisitada ao usuário,declarando-se ACCESS_COARSE_LOCATION (apenasNETWORK_PROVIDER) ou ACCESS_FINE_LOCATION (ambos osprovedores, rede e GPS) no AndroidManifest.xml.

Page 34: Android Aula 3

Par

a e

stu

do

s p

ost

eri

ore

s

Tutoriais e aplicações a serem desenvolvidasHá diversos tutoriais que podem complementar os estudosiniciais de desenvolvimento e aplicações em Android.

• Notepad Tutorial – Aplicação de bloco de notas queoriginou a aplicação NotePad de exemplo do AndroidSDK. Explica o desenvolvimento passo a passo -http://developer.android.com/resources/tutorials/notepad/index.html;

• Hello Testing e Activity Testing – Testes em Android -http://developer.android.com/resources/tutorials;

• MusicDroid - Audio Player - Tutorial de comoprogramar um player de música passo a passo -http://www.helloandroid.com/tutorials/musicdroid-audio-player-part-i.

Page 35: Android Aula 3

Ref

erê

nci

as

Links

• developer.android.com – Portal oficial dedesenvolvimento para Android. SDK, Guia deDesenvolvimento, Documentação completa;

• helloandroid.com – Notícias, Tutoriais deDesenvolvimento, Aplicações, Dispositivos e mais sobreAndroid;

• androidsnippets.org – Trechos de código abordandodiversos recursos do Android;

• code.google.com/p/krvarma-android-samples -Diversas aplicações de exemplo (com código-fonte)englobando câmera, GPS, gestos, Text to Speech,detecção de face e etc.

Page 36: Android Aula 3

What’s Your Message?OBRIGADO!