2013-12-24 4 views
2

Я разрабатываю приложение, которое пытается подключить мой смартфон к устройству BLE с помощью Gatt (это может быть смартфон или устройство BLE) и читать только часть данных. Эти данные будут динамически изменяться, и я хочу сохранить эти данные в качестве значения характеристики услуги. Моя основная цель - прочитать эти данные со стороны клиента. Поскольку я связываюсь с Gatt, я думаю, что единственный способ - сохранить эти данные как значение характеристики.BLE GattServices

Как добавить сервис и характеристику устройства BLE из приложения, которое я создал для устройства BLE? Я провел исследование и нашел полезную информацию от here. Но это поможет вам создать сервис для устройства, к которому вы подключились. Пожалуйста, помогите мне или дайте мне представление. Большое спасибо

ответ

2

Android (до 5.0) не поддерживает работу в качестве периферийного режима, вы можете писать приложения для того, чтобы действовать как центральный (главный) или режим наблюдателя.

С Android 5.0 вы можете использовать API android.bluetooth.le вместе с BluetoothGattServer, чтобы принять периферийную роль на устройствах Android 5.0+.

+0

Он делает [сейчас] (https://developer.android.com/reference/android/bluetooth/BluetoothGattServer.html). – mass

+0

BluetoothGattServer был «добавлен в уровень API 18». Итак, в Android 4.3. –

3

Мне кажется, что вы пытаетесь подключиться к устройству и добавить службу на этом удаленном устройстве. Это не работает, и вы не сможете создать приложение, которое делает это.

В BLE обе ​​стороны имеют сервер Gatt. Вызов API AddService в BluetoothGattService предназначен только для добавления служб на ваш локальный сервер Gatt, а не на удаленный сервер.

Вот как это должно работать:

  • Ваш телефон называется центральным (или хозяин), устройство, которое вы подключаете к являетесь периферическим (или ведомыми).
  • Обе стороны могут определять свой локальный сервер Gatt (обычно до их подключения). Местный сервер Gatt является обязательным для обеих сторон.
  • Если вы можете написать прошивку, запущенную на периферии, вы можете, безусловно, создать службы и характеристики, необходимые для работы вашего приложения (опять же, это обычно происходит при запуске устройств, а не после установления соединения)
  • Ваш телефон будет подключаться к периферии и может читать или записывать на сервер Gatt, работающий на удаленном устройстве, с помощью клиента Android Gatt. Однако структура остается неизменной.

Для получения более подробной информации необходимо установить более подробную информацию о настройке.

+0

Thanx за вашу помощь, но я заметил, что в android вы не можете подключить другое устройство Android как периферийное. Моя цель заключалась в соединении Gatt между двумя смартфонами Android, но это пока невозможно. Это официальное видео, показывающее, что два телефона Android не могут быть подключены к Gatt https://developers.google.com/events/io/sessions/326240948. , а также скриншот http://imgur.com/AqIRJ7q – parliament

+0

@ user3127838: Правильно, Android API не позволяет телефону работать как периферийное устройство. Поскольку iOS действительно поддерживает это, я подозреваю, что Android придется сделать так же задолго до этого. Но ответ на ваш вопрос все тот же. Вы не можете изменить структуру удаленной базы данных (добавление сервисов и характеристик) с помощью клиента GATT. Вы можете читать только записи уже имеющихся значений. Локальная база данных, которую вы можете изменить ... –

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