“颠簸”技术如何工作?

任何有关进行设备到设备数据传输的良好文档或文章?

相当不技术,但他们的常见问题提供了一些技术信息:

问:Bump如何工作?

答:Bump有两个部分:在您的设备上运行的应用程序以及在我们的云服务器上运行的智能匹配algorithm。 手机上的应用程序使用手机的传感器来逐字地“感觉”凹凸,并将该信息发送到云端。 匹配algorithm听世界各地手机的颠簸,并配对感觉相同的电话。 然后,我们只是在每对中的两部电话之间路由信息。

问:没办法。 如果其他人同时碰到什么呢?

A:方法。 我们使用各种技术来限制潜在的匹配池,包括位置信息和碰撞事件的特征。 如果你在一个特别密集的区域(例如,在一个会议中)遇到碰撞,而且我们无法在一次碰撞之后解决一个唯一的匹配,那么我们只需要再次碰撞。 我们的CTO拥有量子力学的博士学位,可以展示math背后的math知识,但是我们build议您下载Bump并亲自尝试!

问:Bump为什么要使用我的位置?

答:我们现在在全球拥有数百万用户。 我们使用位置信息作为限制其他手机的数量的方式之一,我们必须检查以确定正确的匹配。 基本上,如果你在芝加哥,我们使用这个信息,所以我们不必把你的碰撞与来自日本,欧洲,纽约等地的碰撞进行比较。因此,我们要求开启位置服务,用户授权使用他们的位置信息。 如果您不授权使用位置信息,凹凸不起作用,对不起。

问:Bump是否要求我的蓝牙也被激活?

A:不! 凹凸不使用蓝牙工作; 所有你需要的是通过WiFi,3G或边缘的互联网连接。

你可能会混淆Bump的function。 我的理解是,加速计和地理位置数据用于识别候选“颠簸”或设备对。 联系人数据本身通过互联网传输,而不是通过蓝牙或WiFi本地传输。

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; } }]; 

}

Interesting Posts