際際滷

際際滷Share a Scribd company logo
Conhecendo e utilizando Beacons e a
Nearby API para Android
Marcelo Quinta
@mrquinta
Como implementar localiza巽達o?
Como implementar localiza巽達o?
Wifi Sat辿lite Rede m坦vel Bluetooth
O que 辿 um beacon BLE?
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para Android
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
https://www.youtube.com/watch?v=TZf4WquRGJU
Conhecendo e utilizando Beacons e a Nearby API para Android
CONTEXTO
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para Android
Qual 辿 a parada?
Conhecendo e utilizando Beacons e a Nearby API para Android
Beacon
Beacon
Beacon
12345
Beacon
???
Beacon
12345
Beacon
???
Beacon
12345
Beacon
Parada X
Conhecendo e utilizando Beacons e a Nearby API para Android
https://github.com/google/eddystone
Eddystone
Eddystone
 Padr達o open-source
 ID
 URL
 Ephemeral IDs
 Dados de telemetria
 Broadcast menos frequente que o iBeacon
https://www.youtube.com/watch?v=TZf4WquRGJU
Google PlacesNearby APIProximity beacons API
APIs
遺看馨艶巽温稼糸看
Passo 1: Hardware
Passo 2: Registro com Proximity Beacons API
Passo 2: Registro com Proximity Beacons API
https://proximitybeacon.googleapis.com/v1beta1/beacons:register
Passo 3: Codifica巽達o
Nearby API
Google Play Services 7.8 Bluetooth Sons inaud鱈veis
Android:
MesssageFilter.Builder messageFilterBuilder = new MessageFilter.Builder()
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))
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)"));
iOS:
GNSStrategy *beaconStrategy
iOS:
GNSStrategy *beaconStrategy = [GNSStrategy
strategyWithParamsBlock:^(GNSStrategyParams *params) {
params.includeBLEBeacons = YES;
}];
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];
// 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];
}
Seja expl鱈cito ao
realizar broadcast
Tenha a permiss達o Cuidado com
a bateria
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
1/3 Developing with Beacons
V鱈deos recomendados
Physical web
Algo a se pensar
https://github.com/google/physical-web
Venha conversar com a galera no Buteco!
Google Developer Experts
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

More Related Content

Conhecendo e utilizando Beacons e a Nearby API para Android