Obter uma chave de API do Google Maps
Para usar a funcionalidade do Google Maps no Android, você precisa se registrar para obter uma chave da API do Google Maps no Google. Até que você faça isso, você verá apenas uma grade em branco em vez de um mapa em seus aplicativos. Você deve obter uma chave v2 da API do Google Maps para Android - as chaves da chave v1 da API do Google Maps Android mais antiga não funcionarão.
A obtenção de uma chave v2 da API do Google Maps envolve as seguintes etapas:
- Recupere a impressão digital SHA-1 do keystore usado para assinar o aplicativo.
- Crie um projeto no console de APIs do Google.
- Obtendo a chave de API.
Obtendo sua impressão digital da chave de assinatura
Para solicitar uma chave da API do Google Maps ao Google, você precisa saber a impressão digital SHA-1 do keystore usado para assinar o aplicativo. Normalmente, isso significa que você terá que determinar a impressão digital SHA-1 para o keystore de depuração e, em seguida, a impressão digital SHA-1 para o keystore que é usado para assinar seu aplicativo para lançamento.
Por padrão, o keystore usado para assinar versões de depuração de um aplicativo Xamarin.Android pode ser encontrado no seguinte local:
C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono para Android\debug.keystore
Informações sobre um repositório de chaves são obtidas executando o comando keytool
no JDK. Essa ferramenta é normalmente encontrada no diretório Java bin:
C:\Arquivos de Programas\Android\jdk\microsoft_dist_openjdk_[VERSÃO]\bin\keytool.exe
Execute keytool usando o seguinte comando (usando os caminhos de arquivo mostrados acima):
keytool -list -v -keystore [STORE FILENAME] -alias [KEY NAME] -storepass [STORE PASSWORD] -keypass [KEY PASSWORD]
Exemplo de Debug.keystore
Para a chave de depuração padrão (que é criada automaticamente para depuração), use este comando:
keytool.exe -list -v -keystore "C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
Chaves de produção
Ao implantar um aplicativo no Google Play, ele deve ser assinado com uma chave privada.
O keytool
será necessário executar com os detalhes da chave privada e a impressão digital SHA-1 resultante usada para criar uma chave de API do Google Maps de produção. Lembre-se de atualizar o arquivo AndroidManifest.xml com a chave correta da API do Google Maps antes da implantação.
Saída Keytool
Você deve ver algo como a seguinte saída na janela do console:
Alias name: androiddebugkey
Creation date: Jan 01, 2016
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
Você usará a impressão digital SHA-1 (listada após SHA1) mais adiante neste guia.
Criando um projeto de API
Depois de recuperar a impressão digital SHA-1 do keystore de assinatura, é necessário criar um novo projeto no console de APIs do Google (ou adicionar o serviço Google Maps Android API v2 a um projeto existente).
Em um navegador, navegue até o Painel de serviços da API do Google Developers Console e clique em Selecionar um projeto. Clique no nome de um projeto ou crie um novo clicando em NOVO PROJETO:
Se você criou um novo projeto, digite o nome do projeto na caixa de diálogo Novo projeto que é exibida. Essa caixa de diálogo fabricará uma ID de projeto exclusiva baseada no nome do projeto. Em seguida, clique no botão Criar , conforme mostrado neste exemplo:
Depois de um minuto ou mais, o projeto é criado e você é levado para a página Painel do projeto. A partir daí, clique em HABILITAR APIS E SERVIÇOS:
Na página Biblioteca de API, clique em SDK do Google Maps para Android. Na próxima página, clique em HABILITAR para ativar o serviço para este projeto:
Neste ponto, o projeto de API foi criado e a API v2 do Google Maps Android v2 foi adicionada a ele. No entanto, você não pode usar essa API em seu projeto até criar credenciais para ela. A próxima seção explica como criar uma chave de API e autorizar um aplicativo Xamarin.Android a usar essa chave.
Obtendo a chave de API
Depois que o projeto de API do Google Developer Console for criado, será necessário criar uma chave de API do Android. Os aplicativos Xamarin.Android devem ter uma chave de API antes de receberem acesso à Android Map API v2.
Na página SDK do Google Maps para Android exibida (depois de clicar em ATIVAR na etapa anterior), vá para a guia Credenciais e clique no botão Criar credenciais :
Clique em Chave de API:
Depois que esse botão é clicado, a chave da API é gerada. Em seguida, é necessário restringir essa chave para que apenas seu aplicativo possa chamar APIs com essa chave. Clique em RESTRINGIR CHAVE:
Altere o campo Nome da Chave de API 1 para um nome que o ajudará a lembrar para que a chave é usada (XamarinMapsDemoKey é usado neste exemplo). Em seguida, clique no botão de opção Aplicativos Android:
Para adicionar a impressão digital SHA-1, clique em + Adicionar nome do pacote e impressão digital:
Insira o nome do pacote do seu aplicativo e insira a impressão digital do certificado SHA-1 (obtida por meio de
keytool
conforme explicado anteriormente neste guia). No exemplo a seguir, o nome do pacote paraXamarinMapsDemo
é inserido, seguido pela impressão digital do certificado SHA-1 obtida de debug.keystore:Observe que, para que seu APK acesse o Google Maps, você deve incluir impressões digitais SHA-1 e nomes de pacotes para cada keystore (debug e release) que você usa para assinar seu APK. Por exemplo, se você usar um computador para depuração e outro computador para gerar o APK de versão, deverá incluir a impressão digital do certificado SHA-1 do keystore de depuração do primeiro computador e a impressão digital do certificado SHA-1 do keystore de release do segundo computador. Clique em + Adicionar nome do pacote e impressão digital para adicionar outra impressão digital e nome do pacote, conforme mostrado neste exemplo:
Clique no botão Salvar para salvar as alterações. Em seguida, você retornará à lista de suas chaves de API. Se você tiver outras chaves de API criadas anteriormente, elas também serão listadas aqui. Neste exemplo, apenas uma chave de API (criada nas etapas anteriores) é listada:
Conectar o projeto a uma conta faturável
A partir de 11 de junho de 2018, a chave de API não funcionará se o projeto não estiver conectado a uma conta faturável (mesmo que o serviço ainda seja gratuito para aplicativos móveis).
Clique no botão do menu hambúrguer e selecione a página Faturamento :
Vincule o projeto a uma conta de faturamento clicando em Vincular uma conta de faturamento seguida de CRIAR CONTA DE FATURAMENTO no pop-up exibido (se você não tiver uma conta, será orientado a criar uma nova):
Adicionando a chave ao seu projeto
Finalmente, adicione essa chave de API ao arquivo AndroidManifest.XML do seu aplicativo Xamarin.Android. No exemplo a seguir, YOUR_API_KEY
deve ser substituído pela chave de API gerada nas etapas anteriores:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionName="4.10" package="com.xamarin.docs.android.mapsandlocationdemo"
android:versionCode="10">
...
<application android:label="@string/app_name">
<!-- Put your Google Maps V2 API Key here. -->
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="YOUR_API_KEY" />
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
</application>
</manifest>