Antes de começar
Para começar a usar o SDK do Maps para Android, você precisa de um projeto com uma conta de faturamento, além de estar com esse SDK ativado. Saiba mais no artigo Primeiros passos na Plataforma Google Maps.
Criar chaves de API
A chave de API é um identificador exclusivo que autentica solicitações associadas ao seu projeto para fins de uso e faturamento. Você precisa ter pelo menos uma chave de API associada ao projeto.
Para criar uma chave de API, siga estas etapas:
-
Acesse a página APIs e serviços > Credenciais.
-
Na página Credenciais, clique em Criar credenciais > Chave de API.
A caixa de diálogo Chave de API criada exibirá sua chave recém-criada. -
Clique em Fechar.
A nova chave aparecerá na página Credenciais, em Chaves de API.
Lembre-se de restringir a chave de API antes de usá-la na produção.
Adicionar a chave de API ao seu app
Não verifique sua chave de API no sistema de controle de versões. Recomendamos armazená-la no arquivo local.properties
, localizado no diretório raiz do projeto.
Para saber mais sobre o arquivo local.properties
, consulte Arquivos de propriedade do Gradle.
A técnica do Gradle a seguir mostra como armazenar uma chave de API no arquivo local.properties
para que ela possa ser referenciada pelo app de forma segura.
Como adicionar a chave de API:
- Abra o
local.properties
no diretório no nível do projeto e adicione o seguinte código ao arquivo. SubstituaYOUR_API_KEY
pela sua chave de API.MAPS_API_KEY=YOUR_API_KEY
- No seu arquivo
build.gradle
no nível do app, adicione esse código no elementodefaultConfig
. Isso permite que o Android Studio leia a chave da API Maps do arquivolocal.properties
no tempo da compilação e injete a variante de buildmapsApiKey
no seu manifesto do Android.android { defaultConfig { // ... // Set the properties within `local.properties` into a `Properties` class so that values // within `local.properties` (e.g. Maps API key) are accessible in this file. Properties properties = new Properties() if (rootProject.file("local.properties").exists()) { properties.load(rootProject.file("local.properties").newDataInputStream()) } // Inject the Maps API key into the manifest manifestPlaceholders = [ mapsApiKey : properties.getProperty("MAPS_API_KEY", "") ] } }
- No seu arquivo
AndroidManifest.xml
, adicione o seguinte código como filho do elementoapplication
.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${mapsApiKey}" />
- Salve os arquivos e sincronize seu projeto com o Gradle.
Observação: conforme mostrado acima, com.google.android.geo.API_KEY
é o nome de metadados recomendado para a chave de API. Uma chave com esse nome pode ser usada para autenticar várias APIs do Google Maps na Plataforma Android, incluindo o Maps SDK for Android. Para garantir a compatibilidade com versões anteriores, a API também aceita o nome com.google.android.maps.v2.API_KEY
. Esse nome herdado permite autenticação apenas na API Android Maps v2. Um aplicativo pode especificar somente um dos nomes de metadados da chave de API. Se ambos forem especificados, a API irá gerar uma exceção.
Restringir chaves de API
Essa ação aumenta a segurança do aplicativo, garantindo que somente solicitações autorizadas sejam feitas com sua chave de API. Recomendamos que você siga as instruções para definir restrições nessas chaves. Para mais informações, consulte Práticas recomendadas da chave de API.
Para restringir uma chave de API, faça o seguinte:
-
Acesse a página APIs e serviços > Credenciais.
- Selecione a chave de API em que você quer definir uma restrição. A página de propriedades será exibida.
- Em Restrições de chave, defina as seguintes opções:
- Restrições do aplicativo:
- Selecione Apps Android.
- Clique em + Adicionar nome do pacote e impressão digital.
- Insira o nome do pacote e a impressão digital do certificado SHA-1. Exemplo:
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
Para ver mais informações, consulte Onde encontrar a impressão digital SHA-1 do seu app. - Restrições de API:
- Clique em Restringir chave.
- Selecione SDK do Maps para Android na lista suspensa Selecionar APIs.
Se o SDK do Maps para Android não aparecer na lista, ative-o. - Para concluir as alterações, clique em Salvar.
Onde encontrar a impressão digital SHA-1 do seu app
A restrição de chave de API do Android se baseia em uma forma resumida do certificado digital do seu app, conhecida como impressão digital SHA-1.
Como encontrar informações do certificado no Android Studio
Se você seguir o guia de primeiros passos do SDK do Maps para Android, o Android Studio criará um arquivo google_maps_api.xml
útil com as credenciais do app.
Escolha uma das seguintes maneiras para encontrar a chave de API no Android Studio:
- A maneira mais rápida e fácil: use o link informado no arquivo
google_maps_api.xml
que o Android Studio criou:- Copie o link fornecido no arquivo
google_maps_api.xml
e cole-o no navegador. Ele direcionará ao Console do Google Cloud e dará as informações necessárias a ele com parâmetros de URL, reduzindo assim a necessidade de inserção manual. - Siga as instruções para criar um novo projeto no Console do Cloud ou selecione um projeto atual.
- Crie uma chave de API restrita ao Android para seu projeto.
- Copie a chave de API resultante, volte ao Android Studio e cole-a no elemento <string> do arquivo
google_maps_api.xml
.
- Copie o link fornecido no arquivo
- Uma maneira um pouco mais complexa: use as credenciais informadas no arquivo
google_maps_api.xml
criado pelo Android Studio:- Copie as credenciais fornecidas no arquivo
google_maps_api.xml
. - Acesse o Console do Google Cloud Platform.
- Use as credenciais copiadas para adicionar o app a uma chave de API ou criar uma nova.
- Copie as credenciais fornecidas no arquivo
Como encontrar informações do certificado por conta própria
Se você não seguiu o guia de primeiros passos ao criar o app, precisará encontrar a impressão digital SHA-1 do seu certificado por conta própria. Primeiro, verifique se você está usando o certificado correto. Você pode ter dois certificados:
- Um certificado de depuração: as Ferramentas do SDK do Android geram esse certificado automaticamente quando você faz um build de depuração. Use-o apenas com apps em teste. Não tente publicar um aplicativo assinado com um certificado de depuração. Veja mais detalhes sobre esse certificado em Fazer login no modo de depuração, na documentação do desenvolvedor Android.
- Um certificado de lançamento: as Ferramentas do SDK do Android geram esse certificado quando você faz um build de lançamento. Também é possível gerá-lo usando o programa
keytool
. Utilize esse certificado quando tudo estiver pronto para lançar seu app.
Siga as etapas abaixo para exibir a impressão digital SHA-1 do certificado usando o programa keytool
com o parâmetro -v
. Para mais informações sobre o Keytool, consulte a documentação da Oracle.
Exibir a impressão digital do certificado de depuração
Localize o arquivo de keystore de depuração. O nome do arquivo é
debug.keystore
, e ele é gerado no momento em que você cria seu projeto. Por padrão, ele fica armazenado no mesmo diretório que os arquivos do Dispositivo virtual Android (AVD, na sigla em inglês):- macOS e Linux:
~/.android/
- Windows Vista e Windows 7:
C:\Users\your_user_name\.android\
- macOS e Linux:
Liste a impressão digital SHA-1:
Para Linux ou macOS, abra uma janela do terminal e digite o seguinte:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
No Windows Vista e Windows 7, execute este código:
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
Será exibida uma saída semelhante a esta:
Alias name: androiddebugkey Creation date: Jan 01, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4aa9b300 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version: 3
Exibir a impressão digital do certificado de lançamento
-
Localize o arquivo de keystore do certificado de lançamento. Não há local nem nome padrão para o keystore de lançamento. Se você não especificar esses itens ao criar seu app,
.apk
ficará sem assinatura, e será preciso assiná-lo antes da publicação. Para o certificado de lançamento, você também precisa do alias do certificado e das senhas do keystore e do certificado. É possível listar os aliases de todas as chaves em um keystore digitando o seguinte:keytool -list -keystore your_keystore_name
Substitua
your_keystore_name
pelo caminho e nome totalmente qualificados do keystore, incluindo a extensão.keystore
. Você precisará inserir a senha do keystore. Em seguida,keytool
exibirá todos os aliases relevantes. -
Digite o seguinte em um terminal ou no prompt de comando:
keytool -list -v -keystore your_keystore_name -alias your_alias_name
Substitua
your_keystore_name
pelo caminho e nome totalmente qualificados do keystore, incluindo a extensão.keystore
. Troqueyour_alias_name
pelo alias que você atribuiu ao certificado quando o criou.
Será exibida uma saída semelhante a esta:
Alias name: <alias_name> Creation date: Feb 02, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4cc9b300 Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version: 3
A linha que começa com SHA1
inclui a impressão digital SHA-1 do certificado. Essa impressão é a sequência de 20 números hexadecimais de dois dígitos separados por dois pontos.
Consulte o guia de inscrição do app para Android e saiba mais sobre os certificados digitais.