2014-12-02 3 views
2

Возможно ли создать приложение iOS, которое будет сканировать соседние мобильные устройства (например, iPhone, Android, iPad и т. Д.), Без необходимости запуска каких-либо пользовательских приложений на ближайших мобильных устройствах?Обнаружение ближайших мобильных устройств из приложения iOS

Я попытался с помощью CoreBluetooth, как это так, работает на моем iPhone 6+:

[self.centralManager scanForPeripheralsWithServices:nil options:nil]; 

Но только рядом устройство обнаруживает это мой компьютер, он не обнаружит мой IPad Air 2, или мой Bluetooth гарнитура ,

Я что-то не так?

+0

Core Bluetooth работает только с устройствами Bluetooth Low Energy, а не с классическим Bluetooth. Я полагаю, что ваш динамик является классическим Bluetooth-устройством. –

+0

Меня больше интересуют обнаружение мобильных устройств, например. IPad Air 2. Это должно быть BLE? –

+0

Да, они есть. Но для того, чтобы быть доступным, устройство должно рекламировать один или несколько служб BLE. Вы можете реализовать «CBPeripheralManager», чтобы сделать это, и даже есть образец кода от Apple для «сканера» и «периферийной» стороны. –

ответ

1

Core Bluetooth работает только с устройствами Bluetooth Low Energy (aka Bluetooth 4.0), а не с классическими Bluetooth-устройствами. Чтобы быть доступным для обнаружения, устройство должно рекламировать один или несколько служб BLE. Вы можете реализовать CBPeripheralManager, чтобы сделать это, и есть sample code от Apple для «сканера» и «периферийной» стороны. Обратите внимание, что таким образом вы также можете обнаружить или открыть другие мобильные устройства, такие как Android-смартфоны.

Я не знаю, можно ли обнаружить службы BET Hotspot или Handoff BLE. Core Bluetooth не позволяет вам получать доступ к «сырым» рекламным пакетам с низким энергопотреблением Bluetooth, поэтому Apple, вероятно, отфильтровывает некоторые вещи.

Если вы хотите обнаружить только устройства iOS (и другие устройства и аксессуары BLE), вы также можете использовать инфраструктуру Multipeer Connectivity. Я лично считаю, что это немного проще в использовании, и даже предоставляет встроенный "discovered devices" view. Но вам все равно придется запускать пользовательское приложение с обеих сторон.

0

Если вы используете Bluetooth с низкой энергией, он будет обнаруживать только периферийные устройства BLE. Однако существует ограничение диапазона. По документации в диапазоне температур BLE устройства составляет около 300 метров Вы можете получить уровень сигнала в CBCentralManager периферийным способом:

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI 

Здесь RSSI ваша сила сигнала .Но периферийное устройство должно быть BLE включить т.е. версию Bluetooth 4.0 или выше

+0

Все, что я тестирую, находится на моем столе –

0

Если вам не нужно размещать все, что вы строите в App Store, вы можете сделать джейлбрейк на вашем iPhone и получить прямой доступ к пакетам.

Bluetooth Companion, доступный в Cydia, покажет вам пакеты bluetooth на вашем телефоне. Я не уверен, доступен ли источник этого проекта, но вы можете посмотреть на другой проект, например BTStack (есть хороший Getting Started guide here).

+0

Хотя целью является приложение Enterprise, а не App Store, jailbreaking не является вариантом. Спасибо за ввод, хотя. –

0

Я рассмотрю вопрос о ком-то, кто участвует в разработке встроенных систем. Как было сказано ранее, BLE обнаруживает только периферийные устройства других устройств BLE, поэтому я не думаю, что технология Bluetooth является лучшим вариантом для приложения, которое обнаруживает ближайшие мобильные устройства.

Ваше приложение должно состоять из двух функций обнаружения. Нужно использовать Bluetooth для обнаружения обычных ПК и использовать GPS для обнаружения других мобильных устройств, так как это единственное другое периферийное устройство, которое, как мне кажется, присутствует в Android-телефоне и 4G ipad mini и т. Д.

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

Ваша проблема не в программном обеспечении, она заключается в аппаратных ограничениях устройств.

Смежные вопросы