43 votes

Comment fonctionne la technologie "bump"?

Une bonne documentation ou des articles sur le transfert de données entre appareils?

56voto

Skilldrick Points 33002

Joli non-technique, mais leur FAQ donne quelques informations sur la technologie:

Q: Comment fonctionne la Bosse de travail?

A: Il y a deux parties à Bosse: l'application en cours d'exécution sur votre appareil et un smart correspondant à l'algorithme s'exécutant sur nos serveurs dans le cloud. L'application sur votre téléphone utilise les capteurs du téléphone pour littéralement "sentir" la bosse, et il envoie cette info sur le cloud. L'algorithme de mise en correspondance est à l'écoute des bosses à partir de téléphones à travers le monde et les paires de téléphones ressenti le même choc. Alors que nous venons de route de l'information entre les deux téléphones dans chaque paire.

Q: Aucune façon. Que faire si quelqu'un d'autre bosses en même temps?

Une: Façon. Nous utilisons différentes techniques permettant de limiter la piscine de correspondances possibles, y compris des informations de localisation et les caractéristiques de la bosse de l'événement. Si vous êtes à la supplantation particulièrement dense de la zone (ex, lors d'une conférence), et nous ne pouvons pas résoudre un unique match après une bosse simple, nous allons vous demander de frapper de nouveau. Notre directeur technique, titulaire d'un Doctorat en Mécanique Quantique et peut montrer les mathématiques derrière cela, mais nous vous suggérons de télécharger la Bosse et l'essayer vous-même!

Q: Pourquoi ne Bosse souhaitez utiliser ma localisation?

R: Nous avons des millions d'utilisateurs dans le monde entier maintenant. Nous utilisons les informations de localisation comme un des moyens de limiter le nombre de d'autres téléphones que nous avons à vérifier pour déterminer la correspondance correcte. En gros, si vous êtes à Chicago, nous utilisons cette info, donc nous n'avons pas à comparer votre bosse avec des bosses en provenance du Japon, de l'Europe, New York, etc. Pour cette raison, nous demandons que les services de localisation être allumé et que les utilisateurs autorisent l'utilisation de leurs informations de localisation. Si vous n'autorisez pas l'utilisation des informations de localisation, Relief ne fonctionne pas, désolé.

Q: Est-Bosse besoin que mon Bluetooth est activé?

R: Non! Bosse ne pas utiliser le Bluetooth fonctionne à tous; tous vous avez besoin est une connexion Internet via wifi, 3G ou Edge.

9voto

Justin Points 9636

Vous pouvez être déroutant comment Bump fonctionne. D'après ce que je comprends, les données de l'accéléromètre et de la géolocalisation sont utilisées pour identifier des "bosses" ou des paires de périphériques. Les données de contact, elles-mêmes, sont transférées sur Internet, pas localement via Bluetooth ou wifi.

5voto

Sebastian Points 474

Exemple complet à partir de https://github.com/bumptech/bump-api-ios

 - (void) configureBump {
// userID is a string that you could use as the user's name, or an ID that is semantic within your environment
[BumpClient configureWithAPIKey:@"your_api_key" andUserID:[[UIDevice currentDevice] name]];

[[BumpClient sharedClient] setMatchBlock:^(BumpChannelID channel) { 
    NSLog(@"Matched with user: %@", [[BumpClient sharedClient] userIDForChannel:channel]); 
    [[BumpClient sharedClient] confirmMatch:YES onChannel:channel];
}];

[[BumpClient sharedClient] setChannelConfirmedBlock:^(BumpChannelID channel) {
    NSLog(@"Channel with %@ confirmed.", [[BumpClient sharedClient] userIDForChannel:channel]);
    [[BumpClient sharedClient] sendData:[[NSString stringWithFormat:@"Hello, world!"] dataUsingEncoding:NSUTF8StringEncoding]
                              toChannel:channel];
}];

[[BumpClient sharedClient] setDataReceivedBlock:^(BumpChannelID channel, NSData *data) {
    NSLog(@"Data received from %@: %@", 
    [[BumpClient sharedClient] userIDForChannel:channel], 
    [NSString stringWithCString:[data bytes] encoding:NSUTF8StringEncoding]);
}];


// optional callback
[[BumpClient sharedClient] setConnectionStateChangedBlock:^(BOOL connected) {
    if (connected) {
        NSLog(@"Bump connected...");
    } else {
        NSLog(@"Bump disconnected...");
    }
}];

// optional callback
[[BumpClient sharedClient] setBumpEventBlock:^(bump_event event) {
    switch(event) {
        case BUMP_EVENT_BUMP:
            NSLog(@"Bump detected.");
            break;
        case BUMP_EVENT_NO_MATCH:
            NSLog(@"No match.");
            break;
    }
}];
 

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X