Не удается найти нужный сервис с Bluetooth-устройства
Я сделал приложение, которое позволяет мне подключаться к Bluetooth-устройству и перечисляет все услуги и характеристики. Однако единственная признанная служба - это "Служба информации об устройстве", существует также "Неизвестная служба", но, похоже, она не передает данные, которые я ищу. Я уверен, что устройство работает правильно, потому что официальное приложение, которое было подключено к устройству, работает нормально. В чем может быть проблема? Возможно ли, что информация, которую я ищу, передается в неизвестном сервисе и каким-то образом шифруется?
1 ответ
Ваше приложение правильно обнаруживает службы, проблема не в этом. Проблема в том, что вы ожидаете, что сервис будет общим, но это не так, это сервис, специфичный для поставщика.
vendor specific
сервис (характеристика) легко узнаваем: его UUID имеет длину 128 бит. Кроме того, это не разрешается стандартными приложениями BLE, такими как nRF Connect, по той простой причине, что они специфичны, а не универсальны.
Когда компания продает устройство, которое реализует общие сервисы, они знают, что оно будет работать с несколькими приложениями, но они также знают, что эти приложения также будут работать на других устройствах от своих конкурентов. Например, вы можете купить сердечный пояс у нескольких компаний и использовать его с несколькими фитнес-приложениями на своем смартфоне.
Когда компания продает устройство, которое реализует специфические для поставщика услуги, они знают, что оно не будет работать с другим приложением, отличным от их собственного, и что ни один конкурент не сможет продать устройство, которое также работает с их приложением.
Две разные стратегии, много разных целей.
По сути, компания, разработавшая устройство, с которым вы играете, не хотела, чтобы вы могли использовать другое приложение, кроме их собственного, для доступа к данным на устройстве. Это так просто.
Теперь вы все еще можете перепроектировать их сервис. Используйте сниффер, сравните данные, передаваемые при использовании их приложения, с данными, фактически отображаемыми в приложении, и, возможно, вы найдете некоторую логику и узнаете, как они скрыли данные в своем сервисе. Однако у них, вероятно, есть какой-то пункт, утверждающий, что вы не должны перепроектировать то или другое.
Вы можете увидеть общие услуги здесь, но вы не узнаете ничего больше, чем я сказал: BLE GATT Services