domingo, 12 de outubro de 2014

Android - Iniciando com Google Maps

Como incluir mapas em minha aplicação? O que devo fazer para trabalhar com o Google Maps? Como faço para traçar rotas e customizar marcadores no mapa? Parece ser simples, mas não é! Resumindo, nós iremos instalar e configurar o Google Play Services SDK, registrar seu aplicativo no Google Developers APIs Console para obter a chave da API de sua aplicação, configurar o arquivo "AndroidManifest.xml" de acordo com o exigido pela Google, e adicionar o mapa em sua aplicação!

Sem mais enrolação, vamos ao passo-a-passo!


1) Neste tutorial vamos considerar que você já tem uma aplicação e quer apenas incluir mapas nela, sendo assim, não irei abordar a criação de uma nova aplicação. Caso você ainda não tenha uma aplicação e pretende criar uma nova aplicação neste momento para utilização do Google Maps, você pode seguir o nosso tutorial de como criar uma nova aplicação Android aqui. Também estaremos considerando que você está utilizando o ADT Eclipse IDE para desenvolver, que já vem com o SDK Android. Se você não está utilizando o ADT Eclipse IDE, você pode fazer o download e instalação seguindo o tutorial da própria Google para isso.

2) O Google Maps Android é disponibilizado como parte do Google Play Service SDK, sendo assim, vamos adicionar o Google Play Services como biblioteca em nossa aplicação. Para isso, clique com o botão direito do mouse na área livre do Package Explorer e selecione "import..." como mostra a imagem abaixo:


Feito isso, na próxima tela que se segue, expanda a opção Android e selecione "Existing Android Code Into Workspace" como mostrado abaixo:



Agora indique o caminho da biblioteca que fica dentro da pasta do SDK Android que vem junto com o ADT Eclipse ou que você baixou separadamente no passo 1) deste tutorial. A biblioteca do Google Play Services fica no diretorio "sdk/extras/google/google_play_services/libproject":



Feito isso, a biblioteca aparecerá "checkada" na wisard. Certifique-se de marcar a opção "Copy projects into worspace" e clique em "Finish":



A biblioteca deverá ter sido importada e agora estará sendo mostrada no Package Explorer junto com seu projeto. Agora para utilizar esta biblioteca dentro do seu projeto é necessário referenciá-la. Para isso, clique com o botão direito em seu projeto e selecione "Properties":



Nas opções do menu da esquerda escolha Android e desça a barra de rolagem até o fim para mostrar a opção de adicionar bibliotecas externas. Clique em "Add...":



Na tela que irá abrir, selecione a opção "google-play-services_lib" e clique em OK:



A biblioteca deverá ser mostrada na lista de bibliotecas externas utilizadas em seu projeto. Clique em "OK" para que o projeto seja atualizado contendo a referencia para a nova biblioteca:



3) Vamos adicionar o versionamento de nossa biblioteca em nossa aplicação. Para isso inclua o seguinte trecho de código dentro da sessão "<application>" do arquivo "AndroidManifest.xml" de sua aplicação:


  <meta-data   
    android:name="com.google.android.gms.version"  
    android:value="@integer/google_play_services_version"/>  

4) Para acessar o Google Maps Server com o Google Maps API você precisa adicionar uma chave de API em sua aplicação. Essa chave é gratuita, você pode utilizá-la em qualquer aplicação sua que utilize o Google Maps, e ela suporta um número ilimitado de usuários. Para adquirir sua chave, clique aqui para abrir o Console de APIs do Google (vale lembrar que você precisa ter uma conta de usuário na Google. Caso não tenha, crie uma. É gratuita!).

Antes de continuarmos, vamos esclarecer algumas coisas. 
Todas as aplicações Android devem ser assinaladas com um certificado digital para que você tenha uma chave privada de sua aplicação. Pelo fato desse certificado ser único ele fornece um jeito de identificar o seu aplicativo. Isso permite, de forma muito útil, rastrear sua aplicação em sistemas como o Google Play Store e o uso de recursos por sua aplicação como o Google Maps Server. Chaves da API do Google Maps são "linkadas com um específico par certificado/pacote. Nós precisamos apenas de uma chave para cada certificado, não importando quantos usuários teremos em nossa aplicação. Aplicativos que usam o mesmo certificado podem utilizar a mesma chave, mas o bom é registrar cada aplicativo com seu próprio certificado. (fonte dessas informações aqui). 

5) Sendo assim, vamos criar a assinatura digital de nosso aplicativo para assim obter a chave necessária para utilizar o Google Maps.

Existem dois tipo de assinatura, em modo Debug e em modo Release. Em modo Debug você assina quando ainda está desenvolvendo sua aplicação (nosso caso) e em modo Release é feito quando você finalmente irá distribuir sua aplicação na loja. Vale ressaltar que você não conseguirá distribuir seu aplicativo na loja com uma assinatura no modo Debug. Vamos abordar a assinatura no modo Debug.

Como estamos utilizando o Eclipse ADT, essa tarefa será simples e indolor! 
Selecione seu projeto e na barra de menu clique em File e selecione Export...:


Na tela que se segue selecione o projeto ao qual você quer gerar a assinatura e clique em Next. Marque a opção "Create a new keystore", escolha onde quer salvar sua chave e forneça a senha de utilização da mesma:


Ao clicar em Next será aberta uma tela no qual você deverá fornecer várias informações. Alias é apenas o nome pelo qual você identificará essa assinatura nas demais vezes que a for utilizar; Password e Confirm você coloca a mesma senha criada no passo anterior; Validity (years) será a validade dessa assinatura em anos; First and Last Name coloca-se o nome e ultimo nome do desenvolvedor(a). As outras informações são opcionais:


Clique em Next e na próxima tela escolha onde você quer salvar o arquivo ".apk" de seu aplicativo. Ao selecionar o local aparecerá a informação "Certificate expires in XX years." Clique em Finish e sua assinatura estará gerada! Simples, não?

6) A chave da API Google Maps é baseada em uma informação do certificado digital de sua aplicação chamada SHA-1 fingerprint que pelo fato de ser um texto único o Google Maps o utiliza para identificar sua aplicação. 

Para recuperar o valor do SHA-1 fingerprint de nossa assinatura digital (criada no model debug) localize o arquivo "debug.keystore" que está localizado No Linux em "~/.android/" e no Windows em "C:/Users/seu_nome_de_usuario/.android/":


Abra o terminal de comandos e execute o seguinte comando:

 keytool -list -v -keystore "caminho_do_arquivo" -alias androiddebugkey -storepass android -keypass android  

Você verá algo parecido com isso:


O certificado SHA-1 fingerprint é o valor da linha iniciada com SHA1. Guarde-a pois iremos utilizá-la mais adiante.

7) Voltando ao Console de APIs do Google, clique em "Create Project", dê um nome ao projeto (sugiro o mesmo nome da aplicação) e clique em "Create":


Espere a tela de Overview de seu projeto carregar e no menu da esquerda expanda a opção APIs & auth e selecione APIs. Procure na lista de APIs no centro da tela a opção Google Maps Android API v2 e no lado direito clique em OFF para que fique ON ativando assim a Google Maps API v2 para este projeto:

 
Neste momento, ela deverá ser mostrada no topo da lista na sessão de APIs ativadas.
Agora, na mesma aba APIs & auth, selecione o menu Credentials e clique em "Create new Key":


Na tela que se segue, digite o valor da chave SHA-1 fingerprint que recuperamos no passo 6) seguido de ";" (ponto-e-vírgula) e o pacote do seu aplicativo (recupere do atributo package do arquivo "AndroidManifest.xml" de sua aplicação:





Feito isso clique em Create. Na tela que se segue, o Console de APIs da Google mostrará como resposta alguns dados, dentre eles a API Key da sua aplicação:


Agora, para incluir tal chave dinamicamente em nossa aplicação, apenas inclua o trecho de código abaixo logo antes de fechar a tag "</application>" em seu arquivo "AndroidManifest.xml" referente à sua aplicação:



 <meta-data  
             android:name="com.google.android.maps.v2.API_KEY"  
             android:value="SUA_API_KEY_AQUI"/>  

8) Para o perfeito funcionamento do Google Maps em nossa aplicação, precisamos deixar explicito em nosso aquivo "AndroidManifest.xml" algumas permissões que o usuário deverá ceder para utilizar o Google Maps através de seu aplicativo. Adicione o seguinte trecho de código no arquivo "AndroidManifest.xml" referente à sua aplicação, logo acima da tag de abertura "<application>" (acima, não dentro):



 <!-- Usada pela API para baixar os mapas do servidor da API Google Maps -->  
 <uses-permission android:name="android.permission.INTERNET"/>  
 <!-- Para permitir à API verificar a conexão antes de tentar baixar os mapas -->  
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
 <!-- Para permitir à API guardar cache de mapas no armazenamento externo -->  
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
 <!-- Permite à API usar o wifi ou 3G ou ambos para determinar a localização -->  
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>  
 <!-- Permite à API utilizar o GPS para determinar a localização -->  
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

 <!-- Indica a utilização da versão 2 do OpenGL para renderização dos mapas -->
 <uses-feature android:glEsVersion="0x00020000" android:required="true"/> 

9) Pronto! Agora toda a configuração está pronto e nós podemos adicionar mapas em nossa aplicação!


Para adicionar um mapa em sua aplicação, no arquivo XML de layout onde você quer adicionar um mapa, adicione o seguinte componente:


 10) Feito isso, compile e execute sua aplicação. Onde você colocou o trecho acima deverá aparecer um mapa! Para aprender a manipular o mapa, definir rotas, fazer marcações e etc, dê uma olhada no próximo tutorial com o título "Android - Trabalhando com Google Maps".



É isso aí!! Se tudo ocorreu bem e você seguiu todo o passo-a-passo, certamente terá em mãos um Aplicativo que utiliza mapas da API do Google Maps!!

Nenhum comentário:

Postar um comentário