2016-11-19 4 views
0

Я хочу создать простой протокол ответа на запрос, чтобы аутентифицировать пользователя на Arduino через смартфон (Android и iOS) с использованием BLE. У меня проблемы с тем, как это будет реализовано с помощью BLE. То, что я хочу сделать:Проверка подлинности смартфона BLE

  1. Arduino отправляет/транслирует вызов
  2. смартфон получает вызов и вычисляет ответ
  3. Smarpthone посылает ответ на Arduino

, как я думал о реализации этой цели является при запуске кнопки Arduino (периферийная и серверная) начнет рекламу. В идеале событие будет срабатывать на смартфоне (центральном и клиентском) при появлении определенного сервиса. Затем смартфон подключается к Arduino, считывает характеристику вызова и записывает ответ на него. Это хороший подход?

Похоже, что невозможно вызвать событие при появлении службы BLE, и мне постоянно нужно будет сканировать смартфон, который очень интенсивен. Не знаете, как обойти это? Geofencing на самом деле не вариант, поскольку он может быть внутри. Может быть, обнаруживает, что пользователь идет, ездя на велосипеде, стоя на месте? Любые предложения приветствуются =).

+0

Вы прочитали основной раздел руководства по режиму программирования Bluetooth от Apple? В нем описывается сценарий, когда после обнаружения периферии вы можете выполнить операцию «connect». Если периферийное устройство в настоящее время не видно, соединение будет завершено позднее, когда периферийное устройство станет видимым.Я предполагаю, что у Android будет что-то подобное – Paulw11

+0

OP, похоже, никто не понял ваш вопрос. Вы когда-либо реализовали протокол BLE и ответ? У меня есть та же самая потребность, я хочу, чтобы BLE занимался проблемой для периферии при подключении. Периферийное устройство должно вычислить ответ, а затем записать его обратно в центральный. Затем центральный должен проверить, действительно ли ответ действителен, прежде чем продолжить. Возможно, простой общий ключ будет работать, но не уверен, насколько легко было бы декомпилировать приложение iOS и открыть общий ключ. – user1689158

ответ

0

На связи IOS BLE выглядит следующим образом:

  • инициализации CBluetoothManager,
  • начала обнаружения устройств через Bluetooth.
  • При обнаружении определенного периферийного устройства, которое вас интересует, подключитесь к нему через диспетчер основных устройств и сохраните эту периферийную переменную в ур-классе,
  • затем .. u должен остановить обнаружение, потому что это ужасно для батарей;) (как и у)
  • после устройства обнаружил, вы можете искать через услуги, характеристика и в конце через дескрипторов < - в THI S ORDER иначе у не получит какой-либо из них,

OFC, теперь вы сможете хранить каждый из этих Варс в своем классе и работать с ними, как вы хотите. BLE на iOS на основе делегатов, и это собственный жизненный цикл, каждый раз, когда будет что-то, чтобы прочитать событие, будет срабатывать. Когда вы захотите отправить несколько сообщений в Arduino, это не проблема. В частичном ответе на вопрос о

«когда появляется определенная услуга. THEN smarphone подключается к Arduino. '

Для того, чтобы читать услуги, вам необходимо сделать шаги ВЫШЕ. Надеюсь, это поможет.

Смежные вопросы