Что я хочу сделать это: У меня есть база данных с определенными устройствами Bluetooth (BD_ADDR). Я хочу узнать, находится ли какое-либо из устройств в радиусе действия, и если да, скажите ему что-нибудь сделать. Один из способов - все время запускать обнаружение, создавать список обнаруженных устройств и сравнивать их с базой данных. Если обнаружено устройство, присутствующее в базе данных, я открываю соединение с ним и говорю ему что-то делать. Проблема в том, что этот процесс медленный и надежно найти все устройства, длина запроса должна быть большой, и процесс должен повторяться все время.Быстрое обнаружение устройств Bluetooth
Моя идея - открыть мой Bluetooth только один раз, соединить его с моим устройством и с тех пор всякий раз, когда устройство входит в диапазон, установить соединение с ним не путем длительного обнаружения, а каким-то образом используя информацию, которую я уже для этого устройства.
Другими словами, можно ли использовать информацию, которую я уже знаю об устройстве (имеющем пару с ним раньше или просто связав с ним), чтобы начать общение с ним, не открывая его первым?
Спасибо, donescamilloATgmail.com
Я использую BTstack для Windows. Не уверен, что он реализует связь сокетов. Просто, чтобы подтвердить - если у меня есть BD_ADDRESS устройства, мне не нужна никакая другая информация (например, clockOffset и т. Д.), Чтобы подключиться к ней (так или иначе, я узнаю, как именно). Это тот случай? Спасибо, donescamilloATgmail.com – user1523271
Yup that is right. Вам не нужно знать ничего, кроме BD_ADDR, для подключения к устройству. Однако вам необходимо убедиться, что устройство поддерживает соединение сокетов, которое вы пытаетесь использовать. RFCOMM, возможно, является наиболее распространенным сокетом, поэтому я был бы удивлен, если BTStack не реализует его. – Zaphod