Я создал приложение, которое позволяет мне подключаться к устройству Bluetooth и перечислять все службы и характеристики. Однако единственным признанным сервисом является «Device Information Service», есть также «Неизвестная служба», но, похоже, он не передает данные, которые им нужны. Я уверен, что устройство работает правильно, потому что официальное приложение, прикрепленное к устройству, отлично работает. В чем может быть проблема? Возможно ли, что информация, которую я ищу, передана в неизвестной службе и как-то зашифрована?Не удается найти желаемую услугу из устройства bluetooth le
ответ
Ваше приложение правильно обнаруживает службы, проблемы там нет. Проблема в том, что вы ожидаете, что сервис будет общим, но это не так, это специализированная услуга поставщика.
A vendor specific
сервис (характеристика) легко узнаваем: его UUID имеет длину 128 бит. Также он не разрешен общими приложениями BLE, такими как nRF Connect, по той простой причине, что они являются специфическими, а не generic.
Когда компания продает устройство, которое реализует общих услуги, они знают, что будет работать с несколькими приложениями, но они также знают, что эти приложения также будут работать для других устройств от своих конкурентов. Например, вы можете купить ремень для сердца от нескольких компаний и использовать их с несколькими фитнес-приложениями на вашем смартфоне.
Когда компания продает устройство, которое реализует поставщика конкретных услуг, они знают, что это будет не работать с другим приложением, чем их собственный один и не любой конкурент сможет продать устройство, которое также работает с их применением.
Две различные стратегии, много разных целей.
В принципе, компания, которая разработала устройство, с которым вы играете, не хотела, чтобы вы могли использовать другое приложение, кроме своего собственного приложения, для доступа к данным на устройстве. Это так просто.
Теперь вы по-прежнему можете перепроверить их обслуживание. Используйте сниффер, сравнивайте данные, передаваемые при использовании своего приложения, с данными, фактически отображаемыми в приложении, и, может быть, вы найдете какую-то логику и научитесь с трудом, как они скрыли данные в своем сервисе. Однако у них, вероятно, есть какое-то положение, в котором говорится, что вы не должны переделывать те или иные разработки.
Вы можете увидеть общие услуги, но вы не узнаете ничего больше, чем то, что я сказал: BLE GATT Services
В итоге мне удалось получить протокол связи Bluetooth от поставщика. Поэтому проблема решена, спасибо за помощь. – user1852879
Вы пытаетесь подключиться к любому устройству здоровья. ? – Naz141
Да, я пытаюсь подключиться к термометру. – user1852879
Вы можете просматривать службы с помощью общего приложения, такого как nRF Connect для Android или LightBlue для iOS. Конечно, возможно, что информация имеет специфику поставщика, тогда только официальное приложение знает, как читать данные. – Tim