Я пишу некоторый код (C ++) для ESP32, чтобы он работал как маяк BLE. Проблема заключается в следующем: iPhone не отправляет свой реальный адрес MA C, но для обеспечения безопасности генерирует случайно сгенерированный адрес MA C. Что меня смущает, так это как вы узнаете, является ли это устройство, с которым вы ранее подключались?
Итак, скажем, я обнаружил новый адрес BLE MA C и, глядя на данные производителя, я могу определить, что это устройство Apple (первые 2 байта равны «4 C»).
Теперь мне нужно узнать, ранее ли я подключался к этому устройству, чтобы я мог разрешить ESP32 инициировать действие (для простоты, скажем, включите светодиод). Если этот адрес MA C находится в списке известных устройств, тогда я могу продолжить, а если нет, то игнорирую его.
Проблема в том, что iPhone не отказывается от реального MA C адрес, обнаруженный адрес MA C никогда не будет ничего совпадать. Поскольку это ситуация безопасности, я уверен, что алгоритм для генерации этих адресов MA C неизвестен.
Для ясности: этот код пишется для ESP32, не iPhone.