46
Conhecendo e utilizando Beacons e a Nearby API para Android Marcelo Quinta @mrquinta

Conhecendo e utilizando Beacons e a Nearby API para Android

Embed Size (px)

Citation preview

Page 1: Conhecendo e utilizando Beacons e a Nearby API para Android

Conhecendo e utilizando Beacons e a Nearby API para AndroidMarcelo Quinta

@mrquinta

Page 2: Conhecendo e utilizando Beacons e a Nearby API para Android

Como implementar localização?

Page 3: Conhecendo e utilizando Beacons e a Nearby API para Android

Como implementar localização?

Wifi Satélite Rede móvel Bluetooth

Page 4: Conhecendo e utilizando Beacons e a Nearby API para Android

O que é um beacon BLE?

Page 5: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 6: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 7: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 8: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 9: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 10: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 11: Conhecendo e utilizando Beacons e a Nearby API para Android

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

Page 12: Conhecendo e utilizando Beacons e a Nearby API para Android

https://www.youtube.com/watch?v=TZf4WquRGJU

Page 13: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 14: Conhecendo e utilizando Beacons e a Nearby API para Android

CONTEXTO

Page 15: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 16: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 17: Conhecendo e utilizando Beacons e a Nearby API para Android

Qual é a parada?

Page 18: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 19: Conhecendo e utilizando Beacons e a Nearby API para Android

Beacon

Page 20: Conhecendo e utilizando Beacons e a Nearby API para Android

Beacon

Page 21: Conhecendo e utilizando Beacons e a Nearby API para Android

Beacon 12345

Beacon

Page 22: Conhecendo e utilizando Beacons e a Nearby API para Android

???

Beacon 12345

Beacon

Page 23: Conhecendo e utilizando Beacons e a Nearby API para Android

???

Beacon 12345

Beacon

Parada X

Page 24: Conhecendo e utilizando Beacons e a Nearby API para Android
Page 25: Conhecendo e utilizando Beacons e a Nearby API para Android

https://github.com/google/eddystone

Eddystone

Page 26: Conhecendo e utilizando Beacons e a Nearby API para Android

Eddystone

• Padrão open-source • ID • URL • Ephemeral IDs • Dados de telemetria

• Broadcast menos frequente que o iBeacon

Page 27: Conhecendo e utilizando Beacons e a Nearby API para Android

https://www.youtube.com/watch?v=TZf4WquRGJU

Page 28: Conhecendo e utilizando Beacons e a Nearby API para Android

Google PlacesNearby APIProximity beacons API

APIs

Page 29: Conhecendo e utilizando Beacons e a Nearby API para Android

Começando

Page 30: Conhecendo e utilizando Beacons e a Nearby API para Android

Passo 1: Hardware

Page 31: Conhecendo e utilizando Beacons e a Nearby API para Android

Passo 2: Registro com Proximity Beacons API

Page 32: Conhecendo e utilizando Beacons e a Nearby API para Android

Passo 2: Registro com Proximity Beacons API

https://proximitybeacon.googleapis.com/v1beta1/beacons:register

Page 33: Conhecendo e utilizando Beacons e a Nearby API para Android

Passo 3: Codificação

Nearby API

Google Play Services 7.8 Bluetooth Sons inaudíveis

Page 34: Conhecendo e utilizando Beacons e a Nearby API para Android

Android:

MesssageFilter.Builder messageFilterBuilder = new MessageFilter.Builder()

Page 35: Conhecendo e utilizando Beacons e a Nearby API para Android

Android:

MesssageFilter.Builder messageFilterBuilder = new MessageFilter.Builder() // Include messages published by this app. .includeAllMyTypes() // Include messages of a specific type, published by nearby beacons. .includeNamespacedType("com.google.location.beaconservice", "sample_attachment");messageFilterBuilder.includeDevicePresenceMessages( NearbyDeviceFilter.forEddystone(MY_EDDYSTONE_NAMESPACE))

Page 36: Conhecendo e utilizando Beacons e a Nearby API para Android

Android:

MesssageFilter.Builder messageFilterBuilder = new MessageFilter.Builder() // Include messages published by this app. .includeAllMyTypes() // Include messages of a specific type, published by nearby beacons. .includeNamespacedType("org.example.beaconinfoeservice", "sample_attachment");messageFilterBuilder.includeDevicePresenceMessages( NearbyDeviceFilter.forEddystone(MY_EDDYSTONE_NAMESPACE))SubscribeOptions options = new SubscribeOptions.Builder() .setStrategy(getStrategy()) .setFilter(messageFilterBuilder.build()) .build();Nearby.Messages.subscribe(mGoogleApiClient, mMessageListener, options) .setResultCallback(new ErrorCheckingCallback("subscribe(MessageListener)"));

Page 37: Conhecendo e utilizando Beacons e a Nearby API para Android

iOS:

GNSStrategy *beaconStrategy

Page 38: Conhecendo e utilizando Beacons e a Nearby API para Android

iOS:

GNSStrategy *beaconStrategy = [GNSStrategy strategyWithParamsBlock:^(GNSStrategyParams *params) { params.includeBLEBeacons = YES; }];

Page 39: Conhecendo e utilizando Beacons e a Nearby API para Android

iOS:

GNSStrategy *beaconStrategy = [GNSStrategy strategyWithParamsBlock:^(GNSStrategyParams *params) { params.includeBLEBeacons = YES; }];GNSSubscriptionParams *beaconParams = [GNSSubscriptionParams paramsWithMessageNamespace:@“com.mycompany.mybeaconservice” type:@“mybeacontype” strategy:beaconStrategy];_beaconSubscription = [_messageManager subscriptionWithParams:beaconParams messageFoundHandler:myMessageFoundHandler messageLostHandler:myMessageLostHandler];

Page 40: Conhecendo e utilizando Beacons e a Nearby API para Android

// it here in code. if (!_signInButton) { _signInButton = [[GIDSignInButton alloc] init]; [_unsignedInView addSubview:_signInButton]; CGRect r; r.origin.x = (viewf.width / 2) - 75; r.origin.y = viewf.height / 2 - 20; r.size.width = 150; r.size.height = 40; _signInButton.frame = r; }

if (!_signInStatusIndicator) { _signInStatusIndicator = [[UIActivityIndicatorView alloc] init]; _signInStatusIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray; [_unsignedInView addSubview:_signInStatusIndicator]; CGRect r; r.origin.x = (viewf.width / 2) - 40; r.origin.y = viewf.height / 2 - 40; r.size.width = 80; r.size.height = 80; _signInStatusIndicator.frame = r; }

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginStatusChangedNotification:) name:kBSDLoginStatusChangedNotification object:nil];

}

- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated];}

- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated];

[GIDSignIn sharedInstance].uiDelegate = self;}

- (void)loginStatusChangedNotification:(NSNotification *)notification { [self updateUIForSignInStatus];}

Page 41: Conhecendo e utilizando Beacons e a Nearby API para Android

Seja explícito ao realizar broadcast

Tenha a permissão Cuidado com a bateria

Page 42: Conhecendo e utilizando Beacons e a Nearby API para Android

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 43: Conhecendo e utilizando Beacons e a Nearby API para Android

1/3 Developing with BeaconsVídeos recomendados

Page 44: Conhecendo e utilizando Beacons e a Nearby API para Android

Physical webAlgo a se pensar

https://github.com/google/physical-web

Page 45: Conhecendo e utilizando Beacons e a Nearby API para Android

Venha conversar com a galera no Buteco!

Google Developer Experts

Page 46: Conhecendo e utilizando Beacons e a Nearby API para Android

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