Подтвердить что ты не робот

Как работает технология "удар"?

Любая хорошая документация или статьи о передаче данных между устройствами на устройство?

4b9b3361

Ответ 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;
    }
}];

}