Я пишу набор приложений с низким энергопотреблением Bluetooth для iOS 7. Когда приложение запускается, есть вероятность, что периферийное устройство, которое меня интересует, все еще подключено к устройству iOS, и чтобы избежать сканирования периферийных устройств было бы здорово немедленно связаться. retrieveConnectedPeripheralsWithServices:
выглядит идеально для этого и действительно работает как рекламируемый: я получаю список CBPeripherals, которые подключены к устройству через какое-то фоновое приложение.iOS - corebluetooth retrieveConnectedPeripheralsWithServices: - как получить данные о рекламе?
До сих пор так хорошо, но вот вопрос:
Там же информация в AdvertisementData, который я хочу, но я не знаю, как получить AdvertisementData при переходе по этому маршруту. As far as I can see, advertData доступна только в результате сканирования.
Так что мой вопрос заключается в следующем: * Учитывая CBPeripheral
возвращаемый retrieveConnectedPeripheralsWithServices:
, как я могу получить соответствующую advertisementData
для этого периферийного устройства?
Одним из способов решения этой проблемы было бы воспользоваться тем фактом, что устройство, вероятно, было подключено к другому из приложений в моем собственном пакете, поэтому я мог сохранять данные рекламы самостоятельно в хранилище, разделяемом между приложениями, но это не является ни чистым, ни идеальным , потому что есть вероятность, что устройство подключено к чужому приложению, и поэтому я не буду разбираться в рекламных данных в этом сценарии и должен будет прибегнуть к сканированию.
Многие, но не все периферийные устройства будут предлагать те же услуги, которые рекламируются через их GATT. Этот комментарий может быть или не быть полезным, в зависимости от того, что вы хотите сделать и с какой периферией вы хотите поговорить. – CuriousRabbit