beacons no mundo real com eddystone
TRANSCRIPT
![Page 1: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/1.jpg)
Beacons no mundo real com o padrão EddystoneMarcelo Quinta
@mrquinta
![Page 2: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/2.jpg)
O que é um beacon BLE?
![Page 3: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/3.jpg)
![Page 4: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/4.jpg)
![Page 5: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/5.jpg)
![Page 6: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/6.jpg)
![Page 7: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/7.jpg)
![Page 8: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/8.jpg)
![Page 9: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/9.jpg)
O que é um beacon BLE?
• Dispositivo por localização por bluetooth • 2.4 Ghz, mas em canal diferente • Certa capacidade de guardar informações • ˜30bytes
• Bateria que pode durar anos • Broadcast de uma a dez vezes por segundo
(configurável)
![Page 10: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/10.jpg)
![Page 11: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/11.jpg)
CONTEXTO
![Page 12: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/12.jpg)
![Page 13: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/13.jpg)
![Page 14: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/14.jpg)
Qual é a parada certa?
![Page 15: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/15.jpg)
![Page 16: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/16.jpg)
Beacon
![Page 17: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/17.jpg)
Beacon
![Page 18: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/18.jpg)
Beacon 12345
Beacon
Funciona até no iPhone!
![Page 19: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/19.jpg)
12345
Beacon 12345
Beacon
![Page 20: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/20.jpg)
12345
Beacon 12345
Beacon
Parada 0543
![Page 21: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/21.jpg)
![Page 22: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/22.jpg)
https://www.youtube.com/watch?v=TZf4WquRGJU
![Page 23: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/23.jpg)
https://github.com/google/eddystone
Eddystone
![Page 24: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/24.jpg)
Eddystone
• Padrão open-source • UID (identificador comum) • URL • Ephemeral IDs • Dados de telemetria • Possibilidade de adicionar “anexos"
• Broadcast menos frequente que o iBeacon • Já funciona para todas as plataformas móveis + Chrome
(Physical web)
![Page 25: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/25.jpg)
MAIS CONTEXTO
![Page 26: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/26.jpg)
https://www.youtube.com/watch?v=TZf4WquRGJU
![Page 27: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/27.jpg)
Nearby API
Proximity beacons API
APIs para comunicação direta com beacon
Bibliotecas abertas e de fabricantes
APIs para gestão de beacons
Outras
![Page 28: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/28.jpg)
Comunicando-se adhoc com
beacons Eddystone
![Page 29: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/29.jpg)
Processo
1. Configurar o beacon 2. Pegar permissão do usuário 3. Iniciar o serviço de leitura de beacons, fazendo os filtros 4. Ler beacons 5. Utilizar RSSI para sinal
![Page 30: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/30.jpg)
Biblioteca!
• Que tipos são suportados? • Como trata o background? • Tem o código aberto? • Orientado a eventos
compile 'org.altbeacon:android-beacon-library:2.3.5'
![Page 31: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/31.jpg)
CÓDIGO
![Page 32: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/32.jpg)
Gerindo beacons e comunicando-se
com eles
![Page 33: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/33.jpg)
Antes de tudo
1. Criar o projeto no Google Developer Console 1. Ativar Proximity beacons API 2. Ativar Nearby beacons API
![Page 34: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/34.jpg)
Passo 1: Hardware compatível
https://developers.google.com/beacons/eddystone
![Page 35: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/35.jpg)
Passo 2: Registro com Proximity Beacons API
![Page 36: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/36.jpg)
Passo 2: Registro com Proximity Beacons API
https://proximitybeacon.googleapis.com/v1beta1/beacons:register
![Page 37: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/37.jpg)
Passo 2: Registro com Proximity Beacons API
![Page 38: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/38.jpg)
Beacon dashboard
![Page 39: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/39.jpg)
Passo 3: Comunicar com beacon pela aplicação
Nearby API
Google Play Services 7.8+ Bluetooth Sons inaudíveis
Cota: 8.640.000/dia 10K/100 seg
1K/100 seg por usuário
![Page 40: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/40.jpg)
Antes de tudo
1. Gerar chave de debug para o computador (igual Google Maps) 1. Para produção, usar o keystore 2. Colocar a chave no manifest
2. Entender os termos 1. Privacidade dos usuários 2. Segurança dos dados 3. Avisar explicitamente quando estiver rastreando beacons 4. Tomar cuidado com o uso da bateria 5. Utilizar o branding corretamente
3. Adicionar o pacote do Google Play Services Nearby 'com.google.android.gms:play-services-nearby:9.0.0'
![Page 41: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/41.jpg)
Processo
1. Receber permissão 2. Iniciar o serviço Nearby Messages service 3. Assinar o listener de mensagens 4. Ler e identificar o beacon 5. Pedir os anexos, caso existam
![Page 42: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/42.jpg)
BackgroundForeground
• Roda continuamente até o pedido de parada.
• Gasto alto de bateria
• Leituras com modo de menos gasto de energia, mesmo com o app ativo
• Maior latência • Menor confiança • Tela ligada ou ligando ==
mais confiança
![Page 43: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/43.jpg)
Foreground:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... mMessageListener = new MessageListener() { @Override public void onFound(Message message) { String messageAsString = new String(message.getContent()); Log.d(TAG, "Found message: " + messageAsString); }
@Override public void onLost(Message message) { String messageAsString = new String(message.getContent()); Log.d(TAG, "Lost sight of message: " + messageAsString); } }}
![Page 44: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/44.jpg)
Foreground:
// Subscribe to receive messages.private void subscribe() { Log.i(TAG, "Subscribing."); SubscribeOptions options = new SubscribeOptions.Builder() .setStrategy(Strategy.BLE_ONLY) .build(); Nearby.Messages.subscribe(mGoogleApiClient, mMessageListener, options);}
![Page 45: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/45.jpg)
Background:
// Subscribe to messages in the background.private void backgroundSubscribe() { Log.i(TAG, "Subscribing for background updates."); SubscribeOptions options = new SubscribeOptions.Builder() .setStrategy(Strategy.BLE_ONLY) .build(); Nearby.Messages.subscribe(mGoogleApiClient, getPendingIntent(), options);}
private PendingIntent getPendingIntent() { return PendingIntent.getBroadcast(this, 0, new Intent(this, BeaconMessageReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT);}
![Page 46: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/46.jpg)
Background:
@Overridepublic void onReceive(Context context, Intent intent) { Nearby.Messages.handleIntent(intent, new MessageListener() { @Override public void onFound(Message message) { Log.i(TAG, "Found message via PendingIntent: " + message); }
@Override public void onLost(Message message) { Log.i(TAG, "Lost message via PendingIntent: " + message); } });}
![Page 47: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/47.jpg)
CICLO DE VIDA
![Page 48: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/48.jpg)
BACKGROUND
![Page 49: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/49.jpg)
Leia este artigo: http://www.geomarketing.com/geominds-is-googles-eddystone-the-donald-trump-of-the-beacosystem
![Page 50: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/50.jpg)
Mais informações
Nearby Connections e Nearby Messages
developer.android.com/nearby
Beacons em geral
developer.google.com/beacons
Proximity Beacon API
developer.google.com/beacons/proximity
Eddystone
github.com/google/eddystone
![Page 51: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/51.jpg)
*Priorize os do I/OVídeos recomendados
![Page 52: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/52.jpg)
Physical webEntenda de vez o conceito
https://github.com/google/physical-web
![Page 53: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/53.jpg)
Venha conversar com a gente!
Google Developer Experts
![Page 54: Beacons no mundo real com Eddystone](https://reader033.vdocuments.site/reader033/viewer/2022052606/589cae801a28abbe4a8b5627/html5/thumbnails/54.jpg)
Marcelo Quinta@mrquinta
Obrigado
Essa palestra foi baseada em material disponibilizado pelo Google. Dê uma olhada no canal do Youtube deles: https://www.youtube.com/user/GoogleDevelopers