- Создание пары между аксессуаром Bluetooth стороннего производителя и iPhone, iPad или iPod touch
- Создание пары между устройством и аксессуаром Bluetooth
- Разрыв пары с аксессуаром Bluetooth
- Если не удается создать пару для аксессуара Bluetooth
- Как перекинуть фото с iPhone на Android через Bluetooth: можно или нет?
- Передача фото
- Передача файлов (игры, музыку, книги, документы)
- Set up AirPods with your Mac and other Bluetooth devices
- Use AirPods with your Mac
- Use AirPods with a non-Apple device
- Switch devices automatically
- Подключение iOS к Android через Bluetooth для передачи файлов
- Подготовка
- Инструкция
- CoreBluetooth на практике
- Перевод статьи Practical CoreBluetooth for Peripherals
- Bluetooth Low Energy
- Как это работает?
- Core Bluetooth
- Поиск устройств
- Подключение к устройству
- Сделаем устройство полезным
- Запись на устройство
- Наследование CBPeripheral? Если бы все было так легко
- Подключение и работа с CBPeripheralDelegate
- Определение близости
- Что дальше?
Создание пары между аксессуаром Bluetooth стороннего производителя и iPhone, iPad или iPod touch
Создайте пару между iPhone, iPad, или iPod touch и аксессуарами Bluetooth для потоковой передачи музыки, видео, телефонных звонков и много другого.
В зависимости от того, какое приложение используется, возможен вывод предупреждения о необходимости включить Bluetooth перед созданием пары с аксессуаром через Bluetooth. Перейдите в меню «Настройки» > «Конфиденциальность» и нажмите Bluetooth. Затем включите Bluetooth для приложений, которые хотите использовать.
Создание пары между устройством и аксессуаром Bluetooth
- На устройстве перейдите в меню «Настройки» > Bluetooth и включите Bluetooth. Оставайтесь на этом экране, пока не выполните все шаги по созданию пары для аксессуара.
- Переведите аксессуар в режим обнаружения и подождите, пока он отобразится на экране устройства. Если аксессуар не отображается или вы не знаете, как перевести его в режим обнаружения, просмотрите инструкции из комплекта поставки или свяжитесь с производителем.
- Чтобы создать пару, нажмите имя аксессуара, когда оно появится на экране. Может потребоваться ввести PIN-код или код-пароль. Если вам не известен присвоенный аксессуару PIN-код или код-пароль, изучите документацию из комплекта поставки.
После создания пары аксессуар можно использовать вместе с устройством. Чтобы создать пару между несколькими аксессуарами Bluetooth, повторите эти действия. Узнайте, как переключать источники аудио для своего устройства.
Разрыв пары с аксессуаром Bluetooth
Чтобы разорвать пару с аксессуаром Bluetooth, перейдите в меню «Настройки» > Bluetooth, выберите нужный аксессуар, коснитесь кнопки информации , а затем «Забыть это устройство». Это приведет к удалению аксессуара из списка доступных Bluetooth устройств.
Чтобы снова добавить аксессуар Bluetooth на устройство, переведите его в режим обнаружения и повторите перечисленные выше действия, чтобы создать с ним пару.
Если не удается создать пару для аксессуара Bluetooth
Узнайте, что делать, если все равно не удается создать пару между аксессуаром Bluetooth и устройством.
Информация о продуктах, произведенных не компанией Apple, или о независимых веб-сайтах, неподконтрольных и не тестируемых компанией Apple, не носит рекомендательного или одобрительного характера. Компания Apple не несет никакой ответственности за выбор, функциональность и использование веб-сайтов или продукции сторонних производителей. Компания Apple также не несет ответственности за точность или достоверность данных, размещенных на веб-сайтах сторонних производителей. Обратитесь к поставщику за дополнительной информацией.
Источник
Как перекинуть фото с iPhone на Android через Bluetooth: можно или нет?
Всем привет! Сегодня я расскажу вам, как через блютуз передать с Айфона на Андроид фото, документы, файлы, видео и музыку, и можно ли вообще это сделать. И тут сразу встает проблема, так как прямым способом передать файлы по Bluetooth почти невозможно, как это можно спокойно сделать на том же Android.
Почему так происходит? Да потому что якобы компания Apple борется с пиратством. Они боятся, что вы будете перекидывать фильмы, музыку и файлы, которые по правами принадлежат не вам. Это официальный ответ яблочной компании. Но на деле же это обычное вранье.
Правда в том, что компания хочет, чтобы вы и ваши друзья, а также родные, близкие, соседи, друзья, собака и ваш кот – все покупали только устройства яблочной компании. Таким образом вы будете затянуты в закрытую экосистему, откуда уже не выбраться. Перекинуть те же фото можно с помощью AirDrop, которую поддерживают только продукты компании Apple. Передать фото конечно можно, но не по Bluetooth – об этом я коротко расскажу в статье ниже.
ПРИМЕЧАНИЕ! На самом деле можно конечно перекидывать все что угодно и через «Голубой зуб», но есть небольшой маленький нюанс – об этом смотрите последнюю главу этой статьи.
Передача фото
Так все же, как перекинуть фото на iPhone, не используя Bluetooth? Можно сделать это несколькими способами:
- Если вы не хотите, чтобы фото сжималось, то проще всего сделать это по почте. Откройте галерею, далее нажмите по кнопке «Выбрать», выделите фотографии, которые вы хотите передать, нажмите на кнопку передачи и выберите из списка «Почту». Далее все просто, вводим почтовый ящик Google, который привязан к смартфону. И тут вы можете опять столкнуться с проблемой: при передаче фотографий реального размера, есть ограничение в 24 МБ (спасибо компания Apple). Так что, если у вас много фоток, придется разбивать передачу на несколько частей.
- Следующий способ – это использовать приложение iCloud на Android. Вы скачиваете его с Google Play, запускаете, генерируете код на своем iPhone для подключения и авторизации. А уже потом скачиваете фото, но уже с облака.
- Можно попробовать использовать облако из браузера. Открываем браузер на Андроид, заходим по ссылке – icloud.com . Авторизовываемся и скачиваем фото.
- Можно использовать и любой мессенджер, но есть проблема – они все сжимают фотографии. Если вам этого достаточно, то просто отправьте фото в чат. Если вам нужно отправить картинку с полным разрешением и без сжатия, то лучше использовать Telegram. При отправке следует использовать отправку фотографии как файл и сжатия не будет.
- SHAREit – специальное приложение, которое передает данные не по Bluetooth, а по Wi-Fi. Скачиваем оба приложения, сначала на iPhone, а потом на Android. Инструкцию можно посмотреть в видео ниже.
Передача файлов (игры, музыку, книги, документы)
И тут встает проблема открытости системы iOS. Тот же Android имеет открытую систему, поэтому вы спокойно можете работать с файлами, передавать их кому угодно. В iOS «из-за соображения безопасности» компания Apple закрыла доступ к файловой системе. Ах, да – конечно же еще из-за того, чтобы вы не стали пиратом, не катались на корабле, не пили ром, не кричали «Йо-хо-хо» и не перекидывали файлы, которые могут быть не вашими.
ПРИМЕЧАНИЕ! Перекинуть те же приложения через Блютуз можно, но работать они на Android не будут, из-за разности операционных систем.
И тут остается единственный способ – Jailbreak. Jailbreak – это по сути взлом системы iOS, при котором становится доступным файловая система. Также вам становится доступным магазин с дополнительным софтом Cydia. При взломе системы iPhone сразу выходит из гарантии. С другой стороны, если гарантия уже закончилась – то почему бы и нет?!
Там уже можно и файлы через Bluetooth скинуть, и музыку, и работать с документами. В общем все то, что есть в обычном Android. Про Jailbreak можете посмотреть видео ниже, а дальше решать только вам.
Источник
Set up AirPods with your Mac and other Bluetooth devices
Learn how to set up your AirPods with your Mac, Android device, or another Bluetooth device to listen to music, take phone calls, and more.
Use AirPods with your Mac
If you’re using AirPods (2nd generation), make sure that your Mac has macOS Mojave 10.14.4 or later. AirPods Pro require macOS Catalina 10.15.1 or later. AirPods (3rd generation) require macOS Monterey or later.
If you set up your AirPods with your iPhone and your Mac is signed in to iCloud with the same Apple ID, your AirPods might be ready to use with your Mac. Place your AirPods in your ears and click either the Bluetooth menu or the volume control in the menu bar on your Mac. 1 Then choose AirPods from the list.
If you don’t see your AirPods in the Bluetooth or volume control menu, 2 pair your AirPods with your Mac:
- On your Mac, choose System Preferences from the Apple menu (), then click Bluetooth .
- Make sure that Bluetooth is on.
- Put both AirPods in the charging case and open the lid.
- Press and hold the setup button on the back of the case until the status light flashes white.
- Select your AirPods in the Devices list, then click Connect.
If sound still plays from your Mac speakers, click either the Bluetooth menu or the volume control in the menu bar and make sure that your AirPods are selected as the output device. 1
Use AirPods with a non-Apple device
You can use AirPods as a Bluetooth headset with a non-Apple device. You can’t use Siri, but you can listen and talk. To set up your AirPods with an Android phone or other non-Apple device, 3 follow these steps:
- On your non-Apple device, go to the settings for Bluetooth and make sure that Bluetooth is on. 4 If you have an Android device, go to Settings > Connections > Bluetooth.
- With your AirPods in the charging case, open the lid.
- Press and hold the setup button on the back of the case until you see the status light flash white.
- When your AirPods appear in the list of Bluetooth devices, select them.
Switch devices automatically
Your AirPods (2nd generation), AirPods (3rd generation), and AirPods Pro can switch automatically between your Mac with macOS Big Sur, iPhone with iOS 14, and iPad with iPadOS 14 or later. Your devices need to be signed in with the same Apple ID using two-factor authentication. For example, while listening to music on your Mac, you answer a call on your iPhone. Your AirPods automatically switch from the music on your Mac to the phone call on your iPhone.
In some situations, you’ll see a notification about your AirPods on the screen of your Mac. When you hold the pointer over the notification, a Connect button appears. Click Connect to confirm that you want your AirPods to switch to—or stay with—your Mac.
If you want to turn automatic switching off for your Mac, open Bluetooth preferences on your Mac with your AirPods in your ears. Click the Options button next to your AirPods in the list of devices. Click Connect to This Mac, and then choose When Last Connected to This Mac. To turn this feature on again, choose Automatically.
Sound should not automatically switch from one device to another if you’re in a conversation, like a phone call, a FaceTime call, or a video conference.
Источник
Подключение iOS к Android через Bluetooth для передачи файлов
Практически каждый пользователь “яблочной” продукции знает об ограниченных возможностях Jailbreak в устройствах этого производителя. Так, например, стандартными методами нельзя подключить, тот же iPad к Android через Bluetooth для осуществления передачи файлов. В нашей же статье мы расскажем о способах, которые позволят осуществить отправку файлов через Bluetooth с Android на iPad и наоборот.
Подготовка
Как вы знаете, iOS установлена также и на смартфонах, и на плеерах (iPod Touch), поэтому аналогичным способом можно подключить и iPod к Android по Bluetooth.
Для успешного выполнения на вашем девайсе должен быть Jailbreak и установленный альтернативный магазин Cydia. В нем нужно найти утилиту Airblue sharing, которая и поможет осуществить обмен файлами. Это очень легкая в использовании программа.
Сразу должны предупредить, что Jailbreak:
- возможен не на всех устройствах;
- фактически это взлом прошивки, что означает потерю гарантии.
Нужен ли вам Jailbreak в принципе – ответственное решение, и наверняка поводом для него не станет желание срочно передать файлы по Bluetooth. Каждый пользователь взвешивает риски и преимущества сам. Если вы из тех, кто решился взломать свой гаджет, читайте дальше.
Инструкция
Мы продемонстрируем пошаговую инструкцию, в которой объясним, как выполняется передача файлов между Android и iPad по Bluetooth.
Если нужно отправить файл с iOS:
Источник
CoreBluetooth на практике
Перевод статьи Practical CoreBluetooth for Peripherals
Пару лет назад, впервые столкнувшись в рабочем проекте с Bluetooth, нашел эту статью, которая сильно помогла понять, как это работает, найти “отправную” точку. Надеюсь, что пригодится новичкам.
Об авторе: Йоав Шварц — ведущий iOS разработчик в Donkey Republic, системе байкшеринга в Копенгагене, стремящийся изменить отношение к велотранспорту. Далее речь пойдет от лица автора.
В этой статье я расскажу о практических приемах работы с CoreBluetooth. Сначала о Bluetooth Low Energy (BLE) потому, что не все знакомы с этой технологией, потом о CoreBluetooth, фреймворке от Apple, который даёт нам возможность взаимодействовать с устройствами BLE. Также я поведаю о некоторых приёмах в разработке, о которых сам узнал, пока занимался отладкой, плакал и рвал на голове волосы.
Bluetooth Low Energy
Для начала, что такое BLE? Это вроде как Bluetooth, который все мы используем в колонках, гарнитурах и т. п., но есть разница — этот протокол потребляет очень мало энергии. Обычно одного заряда батареи работающему с BLE устройству может хватить на месяцы или даже годы (в зависимости от того, конечно, как это устройство используется). Это позволяет нам делать вещи, ранее недоступные для “обычного” Bluetooth. Этот стандарт называется Bluetooth 4.0, началось всё с технологии под названием Smart Bluetooth, что и переросло позже в BLE. Есть 200-страничный мануал, можете почитать перед сном, захватывающее чтиво.
BLE очень экономичен в отношении потребления энергии, да и сам протокол не очень сложен. Итак, почему BLE? Как мы можем его использовать? Самый первый и распространенный пример — датчик ЧСС. Обычно это устройство измеряет и передаёт по протоколу ваш сердечный ритм. Ещё есть всякие сенсоры, к которым можно подключаться по BLE и считывать те данные, которые они собирают. Наконец, есть iBeacons, которые могут сообщать вам “близость” к какому-либо месту. В кавычках потому, что на Айфонах Apple блокирует возможность обнаружения iBeacons как обычных Bluetooth-устройств, поэтому нам остаётся работать с CoreLocation. В общем, это Интернет вещей: вы можете подключиться к телевизору или кондиционеру, и общаться с ним, используя данный протокол.
Как это работает?
У нас есть периферал — так называются устройства, работающие по протоколу Bluetooth. У каждого периферала есть сервисы, их может быть сколь угодно много, и каждый из них имеет характеристики. Можно рассматривать периферал как сервер. Со всеми вытекающими последствиями: иногда он отключается, иногда требуется время на передачу данных, a иногда эти данные и вовсе не приходят.
В целом, у нас есть сервис со множеством характеристик, каждая из которых содержит какое-нибудь значение, тип и так далее. Чтобы работать с CoreBluetooth — не нужно знать всего, самое главное — считывать данные. Вот что мы пытаемся получить, изменить или использовать в своих целях. Нам нужны эти данные и знание того, что мы можем с ними делать.
Вот такое краткое вступление в BLE потому, что есть тысячи ресурсов, которые объяснят технические особенности лучше меня.
Core Bluetooth
Core Bluetooth был представлен Apple достаточно давно, в iOS 5. Apple начала работу по внедрению BLE в свои устройства намного раньше Android и роста популярности технологии. Множество разработчиков используют этот фреймворк в своих приложениях, по большому счету — это всего лишь обертка, так как сами по себе протоколы BLE достаточно сложны. Не то чтобы очень, но поверьте, это не то, с чем хотелось бы работать каждый день. Так же, как и многие другие вещи, Apple завернула это в красивую и удобную упаковку, позволив пользоваться терминами, которые все мы, глупые разработчики сможем понять.
Теперь настала очередь рассказать то, что действительно нужно знать — о классах, вовлеченных в общение с фреймворком. Наш главный актер — CBCentralManager, создадим его:
Выше мы создали новый менеджер, указав его делегат, иначе мы не сможем им пользоваться. Также укажем очередь, в нашем случае nil, значит, все общение с менеджером будет осуществляться на главной очереди.
Необходимо понимать, что конкретно вы собираетесь делать — использование отдельной очереди усложнит приложение, но, конечно же, пользователи будут любить вас сильнее. Если планируется общение всего с одним устройством, можно не заморачиваться и использовать главную очередь. Если же всё-таки захотите поэкспериментировать, то создайте очередь, укажите её в конструкторе и не забывайте вернуться на главную, прежде чем использовать полученные результаты в другом месте.
Опции. Тут ничего особенно интересного, пожалуй, главная — когда вы создаёте менеджер и у пользователя выключен bluetooth — приложение скажет ему об этом, но почти все нажимают “ОК” (что на самом деле не включает bluetooth), из-за чего и этой опцией я не пользуюсь.
Первым делом после создания менеджера у его делегата вызывается метод:
Так мы получим ответ от аппаратной части — включен у пользователя bluetоoth или нет.
Первый совет: менеджер бесполезен до тех пор, пока мы не получим ответ, что bluetоoth включен, его состояние — .PoweredOn. Остальные состояния можно использовать разве что для того, чтобы попросить пользователя включить bluetooth.
Поиск устройств
Теперь, когда наш менеджер работает должным образом, мы можем смотреть,
что же находится вокруг нас (после получения состояния .PoweredOn — вызываем функцию scanForPeripheralsWithServices:)
Насчет сервисов — это массив CBUUID (класс, представляющий собой 128-битные универсальные уникальные идентификаторы атрибутов, используемых Bluetooth Low Energy прим. пер.), который мы используем в качестве фильтра, чтобы найти устройства только с этим набором UID, это обычная практика в CoreBluetooth.
Если передать в качестве аргумента nil — мы сможем увидеть все устройства вокруг. Для производительности, конечно, лучше указать массив нужных нам параметров, но в случае, когда вы их не знаете — не случится ничего страшного, если передать nil, никто не умрет.
Так как мы запустили поиск устройств, то мы и должны его остановить. Иначе поиск так и будет продолжаться и сажать батарею пользователя, пока мы не остановим его. Как только мы найдём нужное устройство, или необходимость в поиске отпадет, остановимся:
Каждый раз при обнаружении нового устройства у делегата менеджера будет вызвана функция didDiscoverPeripheral на той очереди, которую мы указали при его инициализации. Функция передает нам найденное устройство (peripheral), информацию о нем (advertisementData — что-то, что разработчики чипа решили показывать каждый раз) и относительный уровень сигнала RSSI в децибелах.
Второй совет: всегда держите сильную ссылку на обнаруженный нужный периферал. Если этого не сделать, система решит, что найденное устройство нам не нужно, и отбросит его. Она будет помнить о нем, но у нас к нему уже не будет доступа. Иначе работать с устройством мы не сможем.
Подключение к устройству
Мы нашли интересующее нас устройство — это как прийти на вечеринку и увидеть симпатичную девушку. Мы хотим подключиться, вызываем функцию connectPeripheral — предлагаем “купить выпить”. Таким образом, мы пробуем подключиться к нужному устройству (peripheral), и оно может сказать нам “да” или “нет”, но наш iPhone действительно хорош, поэтому мы услышим положительный ответ.
Здесь мы обратились к менеджеру, который отвечает за подключения, говорим ему, к какому конкретно устройству мы подключаемся, и опять в опции отдаем nil (если вам на самом деле очень интересно узнать об опциях — почитайте документацию, но обычно можно обойтись без них). Когда вы закончите работу с устройством, можно от него отключиться, ну вы знаете, утром — cancelPeripheralConnection:
После того как мы подключимся или оборвем соединение, делегат сообщит нам об этом:
Теперь, ещё два важных совета. Протокол Bluetooth предполагает таймаут на подключение, но Apple это не заботит. iOS будет снова и снова пытаться подключиться и не прекратит, пока вы не вызовете cancelPeripheralConnection. Этот процесс может слишком затянуться, так что необходимо ограничить его во времени, и если, в конце концов, мы не получаем сообщения об успешном подключении (didConnectPeripheral) — нужно информировать пользователя, что что-то пошло не так.
Если вы не держите сильную ссылку на периферал, iOS просто сбросит соединение. С её точки зрения это будет означать, что оно вам не нужно, а поддерживать его — довольно энергоёмкая задача для батареи, а нам известно, как Apple относится к расходу энергии.
Сделаем устройство полезным
И так, мы подключились к устройству, давайте с ним что-нибудь сделаем. Ранее я упоминал про сервисы и характеристики, про значения которые они содержат, вот что нам нужно. Теперь у нас есть устройство, оно подключено и мы можем получить его сервисы, вызвав peripheral.discoverServices.
Сейчас прозвучит немного запутанно, но вызов делегата происходит на том потоке, который мы определили при создании менеджера, несмотря на то, что это делегат периферала. То есть система помнит, с каким потоком она работает, и всё наше Bluetooth-общение происходит на этом потоке. Важно не забыть вернуться на главный, если вы использовали не его.
Мы получили сервисы, но нам всё ещё не с чем работать. Далее нужно вызвать peripheral.discoverCharacteristics, делегат отдаст нам все доступные характеристики для полученных сервисов в didDiscoverCharacteristicsForService. Теперь мы можем прочитать значения,
которые там содержатся (readValueForCharacteristic) или попросить сообщать нам, как только там что-то изменится — setNotifyValue.
В отличие от Android, Apple не различает чтение и уведомление. То есть мы не знаем, что происходит — мы считываем что-то с устройства или это устройство что-то говорит нам.
Запись на устройство
У нас есть устройство, мы читаем информацию с него, управляем им. А значит, можем записывать на него информацию, как правило, — обычную NSData. Только нужно выяснить, что это устройство ждет от нас и что будет им принято.
Большинство BLE-устройств поставляются со спецификацией, своего рода API, из которого понятно, как с ними “общаться”. Можно вытащить данные из характеристик, чтобы получить хотя бы примерное представление о том, что устройство ждет от нас.
Из спецификаций мы узнаем, в каких характеристиках какие свойства мы читаем, а в какие пишем, будем ли мы оповещены об изменениях (isNotifying). Чаще всего здесь мы найдем все, что потребуется для работы.
В процессе записи делегат сообщит нам, что все прошло удачно (didWriteValueForCharacteristics), что нужное значение обновилось, а мы можем сказать об этом пользователю или использовать эту информацию иначе.
Мы рассматриваем тему в очень узком срезе, полагаясь на реализацию Apple, поэтому есть ряд проблем, с которыми придется столкнуться. Например, очень сильная зависимость от делегирования, так любимого Apple.
Наследование CBPeripheral? Если бы все было так легко
Казалось бы, раз у нас есть устройство — мы можем начать использовать его, но фактически оно ничего нам не скажет о себе. Возможно, мы хотим управлять замком, кондиционером или датчиком пульса. Необходимо знать, с каким устройством мы общаемся.
Выглядит как наследование: у нас есть частный случай чего-то общего. Из моего опыта могу сказать, что при использовании наследования что-то будет работать совсем не так, как ожидается, что-то совсем не будет работать, и вы не будете знать почему. В общем я бы предостерег вас от идеи наследования CBPeripheral. Что же делать?
Советую добавлять CBPeripheral в конструктор объекта, который будет им управлять. Это инкапсулирует его внутри этого класса. Используйте его для взаимодействия с устройством, удержания сильной ссылки на него, чтобы iOS не обрывала соединение. Но самое важное — этот класс будет использоваться в качестве делегата, иначе будет сложно управлять всеми устройствами в одном месте, это грозит кучей if else.
Подключение и работа с CBPeripheralDelegate
И вот мы подключаемся к устройству и хотим быть CBPeripheralDelegate. Есть ещё один нюанс: пока вы работаете с устройством, “опрашиваете” его сервисы и характеристики, читаете и пишете в них, практически все общение происходит с перифералом. Всё кроме подключения.
Естественно нам хотелось бы сосредоточить все общение в одном месте, но менеджер должен быть в курсе происходящего с устройством. И сложность в том, чтобы иметь один источник правды, сделать так, чтобы все были своевременно информированы о том, что творится с устройством. Для этого будем наблюдать за состоянием периферала — оно может меняться от отключено (disconnected), подключается (connecting) и подключено (connected). Оно всегда расскажет вам о текущей ситуации. Остаётся подписаться на изменение статуса в нашем управляющем объекте, о котором я говорил ранее, это даст возможность общаться с устройством из одного места.
Определение близости
Очень важный момент, поскольку найти нормальную документацию на эту тему сложно. В случае с Apple и их iBeacons все просто, они говорят нам, как близко мы находимся к bluetooth-устройству.
К сожалению, нам не дают такого простого способа для работы со сторонними устройствами. И не один раз случалось так, что была необходимость определить ближайшее устройство. Также сложно понять, находится устройство в доступном диапазоне или нет. Иногда при поиске устройств оно может дать знать о себе всего один раз и пропасть, тогда попытка подключения будет безуспешной.
Мы применяем следующий способ: сохраняем стек с метками даты и уровня сигнала (RSSI) каждого сообщения, полученного в discoverPeripheral. Если кто-то сталкивался с CoreLocation, наш способ похож на то, как там хранятся метки времени и соответствующие координаты. Обычно, чем выше сигнал (RSSI) — тем ближе устройство. Понять же, находится устройство в доступном диапазоне или нет, — сложнее, отчасти потому что само это понятие достаточно гибкое. Для этого я использую средневзвешенное значение сигнала. Имейте в виду, что у подключенного устройства уровень сигнала нужно запрашивать вручную каждый раз, как потребуется его узнать.
Что дальше?
К сожалению, эта статья не сделает вас экспертом, если вы прочитали её и вам
стало интересно — обратите внимание на Apple’s CoreBluetooth Programming Guide, руководство не очень большое, но очень полезное. Ещё есть пара трансляций с WWDC 2012 (basic и advanced) и одна с 2013, но не волнуйтесь, с тех пор мало что изменилось.
Также есть видео с Altconf 2015, размещенное на сайте Realm, в котором делится опытом Джон Шьер, отличный парень и специалист.
Источник