Любая хорошая документация или статьи о передаче данных между устройствами на устройство?
Как работает технология "удар"?
Ответ 1
Довольно нетехнические, но их FAQ дает некоторую информацию о технологии:
Q: Как работает Bump?
A: В Bump есть две части: приложение, запущенное на вашем устройстве, и алгоритм интеллектуального соответствия, который выполняется на наших серверах в облаке. Приложение на вашем телефоне использует телефонные датчики, чтобы буквально "почувствовать" удар, и он отправляет эту информацию до облака. Алгоритм сопоставления прослушивает удары по телефонам по всему миру и соединяет телефоны, которые чувствовали себя одинаково. Затем мы просто отправляем информацию между двумя телефонами в каждой паре.
В: Ни в коем случае. Что, если кто-то еще сталкивается в одно и то же время?
A: Путь. Мы используем различные методы для ограничения пула потенциальных совпадений, включая информацию о местоположении и характеристики события рельефа. Если вы натыкаетесь на особенно плотную область (например, на конференцию), и мы не можем решить уникальный матч после одного удара, мы попросим вас снова наброситься. Наш технический директор имеет кандидатскую диссертацию по квантовой механике и может показать математику позади этого, но мы предлагаем загрузить Bump и попробовать его сами!
В: Почему Bump хочет использовать мое местоположение?
A: Сейчас у нас миллионы пользователей по всему миру. Мы используем информацию о местоположении как один из способов ограничить количество других телефонов, которые мы должны проверить, чтобы определить правильное совпадение. В принципе, если вы находитесь в Чикаго, мы используем эту информацию, поэтому нам не нужно сравнивать ваш удар с ударами, поступающими из Японии, Европы, Нью-Йорка и т.д. По этой причине мы требуем включения служб определения местоположения и пользователи разрешают использовать их данные о местоположении. Если вы не разрешаете использовать информацию о местоположении, Bump не будет работать, извините.
В: Требуется ли Bump также активировать мой Bluetooth?
A: Нет! Bump не использует Bluetooth для работы вообще; все, что вам нужно, - это подключение к Интернету через Wi-Fi, 3G или Edge.
Ответ 2
Возможно, вы сбиваете с толку, как работают функции Bump. Я понимаю, что данные акселерометра и геолокации используются для идентификации кандидатов "ударов" или пар устройств. Сами контактные данные передаются через Интернет, а не локально через Bluetooth или Wi-Fi.
Ответ 3
Полный пример из https://github.com/bumptech/bump-api-ios
- (void) configureBump {
// userID is a string that you could use as the user 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;
}
}];
}