Comece agora

Este documento explica como começar a desenvolver com a API Nearby Messages no Android. A API Nearby Messages faz parte do Google Play Services.

Etapa 1: instalar o Google Play Services

A API Nearby Messages está disponível em dispositivos Android com o Google Play Services 7.8.0 ou mais recente. Os dispositivos com Android 2.3 ou superior que têm o app Google Play Store recebem automaticamente atualizações para o Google Play Services. Para verificar qual versão do Google Play Services está instalada no dispositivo, acesse Configurações > Apps > Google Play Services.

Verifique se você tem a biblioteca de cliente mais recente para o Google Play Services no seu host de desenvolvimento:

  1. Abra o Android SDK Manager.
  2. Em Appearance & Behavior > System Settings > Android SDK > SDK Tools, verifique se os pacotes abaixo estão instalados:

    • Google Play Services
    • Repositório do Google

Etapa 2: criar uma Conta do Google

Para usar as APIs Nearby Messages, você precisa de uma Conta do Google. Dessa forma, você, como desenvolvedor, pode ativar a API Nearby na próxima etapa. Seus usuários não precisam ter uma Conta do Google. Se você já tem uma conta, então está tudo pronto. Você também pode usar uma Conta do Google separada para fins de teste.

Etapa 3: gerar uma chave de API

Siga estas etapas para ativar a API Google Nearby Messages para Android e gerar uma chave de API:

  1. Acesse o Google Developers Console.
  2. Crie ou selecione um projeto para registrar seu aplicativo.
  3. Clique em Continuar para ativar a API.
  4. Na página Credenciais, crie uma nova chave Android e defina as credenciais da API.
    Observação: se você tem uma chave de Android, pode usá-la.
  5. Na caixa de diálogo resultante, insira a impressão digital SHA-1 e o nome do pacote do app. Por exemplo:
    BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
    com.example.android.nearbyexample
  6. A nova chave de API do Android vai aparecer na lista de chaves de API do seu projeto. Uma chave de API é uma string de caracteres, algo como:
    AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

Conseguir a impressão digital SHA1 do seu certificado

Para criar uma nova chave de API para seu app Android, é necessário ter a impressão digital SHA1 do certificado usado para assinar o APK. As mensagens só podem ser trocadas entre apps assinados com chaves de API do mesmo projeto.

Para conseguir essa impressão digital:

  1. Encontre a localização do seu keystore.
  2. Em um terminal, execute o utilitário keytool do JDK. Por exemplo, se você estiver usando o keystore `debug`:
  3. $ keytool -alias \
    androiddebugkey -keystore \
    ~/.android/debug.keystore -list -v
    

    Observação:para o keystore de depuração, a senha é android. No Mac OS e Linux, o keystore de depuração costuma ficar em ~/.android/debug.keystore. No Windows, ela geralmente fica localizada em %USERPROFILE%\.android\debug.keystore.

  4. A saída do comando keytool contém a impressão digital SHA1 do certificado.

Etapa 4: configurar o projeto

O Android Studio facilita a criação de um projeto para a API Nearby Messages. Siga as etapas descritas em Como criar um projeto para criar um novo. No Android Studio, abra o arquivo build.gradle do módulo e adicione a biblioteca de cliente do Google Play Services como dependência:

apply plugin: 'android'
...

dependencies {
    compile 'com.google.android.gms:play-services-nearby:19.1.0'
}

Em seguida, configure o manifesto com a chave de API gerada na etapa anterior:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.sample.app" >
    <application ...>
        <meta-data
            android:name="com.google.android.nearby.messages.API_KEY"
            android:value="API_KEY" />
        <activity>
        ...
        </activity>
    </application>
</manifest>

Etapa 5: publicar e assinar

No app, comece a usar a API Nearby Messages.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    mMessageListener = new MessageListener() {
        @Override
        public void onFound(Message message) {
            Log.d(TAG, "Found message: " + new String(message.getContent()));
        }

        @Override
        public void onLost(Message message) {
            Log.d(TAG, "Lost sight of message: " + new String(message.getContent()));
        }
    }

    mMessage = new Message("Hello World".getBytes());
}

@Override
public void onStart() {
    super.onStart();
    ...
    Nearby.getMessagesClient(this).publish(mMessage);
    Nearby.getMessagesClient(this).subscribe(mMessageListener);
}

@Override
public void onStop() {
    Nearby.getMessagesClient(this).unpublish(mMessage);
    Nearby.getMessagesClient(this).unsubscribe(mMessageListener);
    ...
    super.onStop();
}

A API Nearby Messages requer o consentimento do usuário. Quando publicar ou assinar é invocado pela primeira vez, o Nearby vai mostrar uma caixa de diálogo de ativação.