Как измерить расстояние между устройствами через Bonjour?

Я пытаюсь отправить данные между двумя устройствами в рабочей области Bluetooth.

Поскольку bluetooth не может отправлять файлы, я хочу проверить, находится ли устройство в активной области bluetooth, и если да, то отправить ему файл через wi-fi. Я пытался использовать GameKit, но он мне не подходит, потому что:

  1. Я хочу скрыть интерфейс передачи от пользователя
  2. Если есть возможность, GameKit сразу начинает использовать wi-fi, что мне не нужно

Как я вижу, лучший способ здесь — это Bonjour с классом NSNetService. Но я до сих пор не могу понять, как узнать, находится ли устройство в активной области Bluetooth или нет.

Поскольку основная идея состоит в том, чтобы найти устройства, которые находятся близко к устройству пользователя, я также не возражаю против любых других идей, как измерить расстояние между устройствами, кроме службы Bluetooth.

Возможно, в одном месте много пользователей, поэтому чем меньше времени это займет, тем лучше.

Любая помощь?

Спасибо!


person Riddick    schedule 24.12.2012    source источник


Ответы (1)


Взгляните на HHServices, который красиво скрывает детали реализации для публикации/обнаружения службы через Bluetooth.

В основном вы хотите использовать HHServices для публикации «Службы получения файлов» на принимающей стороне. На стороне отправки вы попытаетесь обнаружить одноранговые узлы, публикующие этот сервис. Обнаружив одноранговый узел, предлагающий вашу «Службу получения файлов», вы знаете, что этот одноранговый узел находится в зоне действия Bluetooth.

Однако, чтобы отправить файл через Wi-Fi, вам необходимо получить адрес WiFi цели (или любую другую идентификацию получателя) для отправителя — возможно, опубликовав его в записи TXT FileReceiveService.

person domsom    schedule 24.12.2012
comment
Этот ответ не имеет ничего общего с измерением расстояния - person tonymontana; 28.05.2020