В настоящее время я пишу приложение, которое использует BTLE
для передачи небольших строк данных между двумя или более телефонами.Данные о низкой энергии Bluetooth (iBeacons)
В настоящее время на переднем плане я прохожу: CBAdvertisementDataLocalNameKey
и CBAdvertisementDataServiceUUIDsKey
. Я могу восстановить (через NSLog) строку, прошедшую через CBAdvertisementDataLocalNameKey, когда приложение находится на переднем плане.
Однако, когда приложение находится в фоновом режиме, CBAdvertisementDataLocalNameKey
не проходит. BTLE UUID
по-прежнему передается вместе с целым числом RSSI
, CBAdvDataChannel
и CBAdvDataIsConnectable
.
После расчёта через бесконечный круг, называемый Apple Documentation, я не нашел способа передать небольшую строку, пока приложение находится в фоновом режиме. Мне кажется, что они не допустили бы BTLE
в фоновом режиме, если бы не было способа передать данные.
Мой вопрос: кто-нибудь знает обходное решение для передачи данных в фоновом режиме с помощью BTLE или метода, который может позволить мне это сделать? Любая помощь или советы будут оценены.
Редактировать: Я должен четко указать, что библиотека, которую я пытаюсь использовать, называется Vicinity https://github.com/Instrument/Vicinity, которая использует CoreBluetooth
, чтобы обойти ограничения фона CoreLocation
.
Все, что мне нужно, это нечто вроде основного или второстепенного значения, прошедшего в фоновом режиме. Проблема возникает, когда приложение находится в фоновом режиме. Использование CoreLocation и традиционного протокола iBeacon, как вы описали, отключено в фоновом режиме и перезапускается на переднем плане. Используя CoreBluetooth, вы все равно можете излучать маяки в фоновом режиме (протокол может быть немного другим), но он сильно ограничивает данные, которые вы можете пройти. Если вы знакомы с чем-то вроде FitBit http://www.fitbit.com/, я считаю, что они передают данные BTLE в фоновом режиме. – brettwmc
Или, если есть еще одна технология bluetooth, которая позволяет передавать данные с низким энергопотреблением без необходимости спаривания, я тоже буду открыт для идей. Хотя я не уверен, что есть способ сделать это. – brettwmc
мы будем в порядке с получением основного и младшего, пока устройство находится в bg, но мы не можем даже получить это на данный момент. Нам просто нужно что-то, что угодно! что позволит нам рассказать 1 устройство от другого, которое может масштабироваться, так как у нас потенциально может быть 1000 пользователей, каждый из которых будет транслировать свой собственный уникальный идентификатор (майор/минор будет просто отлично для нас, я думаю, ЕСЛИ мы могли бы его получить) – ChuckKelly