2010-08-01 10 views
43

Qualche buona documentazione o articoli sul trasferimento dei dati da dispositivo a dispositivo?Come funziona la tecnologia "bump"?

+5

Quando due persone davvero come l'altro ... – Oded

+2

tecnologia "grind" è quello veramente importante. – Skilldrick

+16

Oops, deve essere pubblicato su ComedianOverflow in caso di incidente! – Dave

risposta

55

Piuttosto non tecnico, ma their FAQ fornisce alcune informazioni sulla tecnologia:

D: Come funziona Bump?

A: Ci sono due parti in Bump: l'app in esecuzione sul dispositivo e un algoritmo di corrispondenza intelligente in esecuzione sui nostri server nel cloud. L'app sul telefono utilizza i sensori del telefono per "sentire" letteralmente l'urto e invia tali informazioni al cloud. L'algoritmo di corrispondenza ascolta i dossi dei telefoni di tutto il mondo e accoppia i telefoni che sentono lo stesso bernoccolo. Quindi instradiamo semplicemente le informazioni tra i due telefoni in ciascuna coppia.

Q: Assolutamente no. Cosa succede se qualcun altro urta allo stesso tempo?

A: Via. Utilizziamo varie tecniche per limitare il pool di potenziali corrispondenze, incluse le informazioni sulla posizione e le caratteristiche dell'evento di impatto. Se ti imbatti in un'area particolarmente densa (ad esempio, durante una conferenza) e non possiamo risolvere una partita unica dopo un singolo bump, ti chiederemo semplicemente di riprovare. Il nostro CTO ha un dottorato in Meccanica quantistica e può mostrare la matematica dietro a questo, ma ti suggeriamo di scaricare Bump e provarlo tu stesso!

Q: Perché Bump desidera utilizzare la mia posizione?

A: Abbiamo milioni di utenti in tutto il mondo ora. Usiamo le informazioni sulla posizione come uno dei modi in cui limitiamo il numero di altri telefoni che dobbiamo controllare per determinare la corrispondenza corretta. Fondamentalmente, se ti trovi a Chicago, usiamo queste informazioni per non dover confrontare il tuo urto con i dossi provenienti da Giappone, Europa, New York, ecc. Per questo motivo, richiediamo che i servizi di localizzazione siano attivati ​​e che gli utenti autorizzano l'uso delle loro informazioni sulla posizione. Se non autorizzi l'uso delle informazioni sulla posizione, Bump non funzionerà, mi dispiace.

Q: Bump richiede che anche il mio Bluetooth sia attivato?

A: No! Bump non usa il Bluetooth per funzionare affatto; tutto ciò di cui hai bisogno è una connessione Internet tramite wifi, 3G o Edge.

+0

grazie per le informazioni! – Dave

+4

Puoi far luce sul motivo per cui Bump utilizza un approccio basato sul cloud tramite Bluetooth per avviare un trasferimento? –

+2

Causa in iphone il quadro bluetooth è aperto solo in iphone jail broken. – Robin

9

Si può confondere il funzionamento di Bump. La mia comprensione è che i dati dell'accelerometro e della geolocalizzazione sono utilizzati per identificare i "dossi" o le coppie di dispositivi candidati. I dati di contatto, di per sé, vengono trasferiti su Internet, non localmente tramite Bluetooth o wifi.

+0

grazie per le informazioni! – Dave

5

Esempio completa da 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; 
    } 
}]; 

}

+0

grazie, è utile! –

Problemi correlati