如何解决如何在使用 Bluez5.60 进行 BLE 连接时应用身份验证
我正在尝试使用 Bluez5.6 库通过 BLE GATT 服务器连接我的 RaspBerry Pi 3B+。 我已经成功测试了 BLE 服务器应用程序。 能够通过 Android 上的 BLE 客户端应用程序上的 GATT 服务进行连接和通信。
我想在将客户端应用程序(Android 应用程序)连接到 BLE GATT 服务器时应用身份验证 pin。 我已尝试将不同的功能应用于 BLE 代理。
喜欢... displayOnly displayYesNo KeyboardOnly NoInputNoOutput Keyboarddisplay
def main():
# global mainloop
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
adapter = find_adapter(bus)
if not adapter:
logger.error('main : BLE adapter not found')
return
#discovery functionality
bus.add_signal_receiver(dis_interfaces_added,dbus_interface = "org.freedesktop.DBus.ObjectManager",signal_name = "InterfacesAdded")
bus.add_signal_receiver(dis_properties_changed,dbus_interface = "org.freedesktop.DBus.Properties",signal_name = "PropertiesChanged",arg0 = "org.bluez.Device1",path_keyword = "path")
om = dbus.Interface(bus.get_object("org.bluez","/"),"org.freedesktop.DBus.ObjectManager")
objects = om.GetManagedobjects()
for path,interfaces in objects.items():
if "org.bluez.Device1" in interfaces:
devices[path] = interfaces["org.bluez.Device1"]
capability = "NoInputNoOutput"
logger.info('main : capability : (%s)' % capability)
agent_path = "/test/agent"
agent = Agent(bus,agent_path)
service_manager = dbus.Interface(bus.get_object(BLUEZ_SERVICE_NAME,adapter),GATT_MANAGER_IFACE)
ad_manager = dbus.Interface(bus.get_object(BLUEZ_SERVICE_NAME,LE_ADVERTISING_MANAGER_IFACE)
app = ConfigBluetoothServiceApplication(bus)
adv = ConfigBluetoothServiceAdvertisement(bus,0)
mainloop = GLib.MainLoop()
agent_manager = dbus.Interface(bus.get_object(BLUEZ_SERVICE_NAME,"/org/bluez"),GATT_AGENT_IFACE)
agent_manager.Registeragent(agent_path,capability)
logger.info('main : main : Agent registered')
agent_manager.RequestDefaultAgent(agent_path)
service_manager.Registerapplication(app.get_path(),{},reply_handler=register_app_cb,error_handler=register_app_error_cb)
ad_manager.Registeradvertisement(adv.get_path(),reply_handler=register_ad_cb,error_handler=register_ad_error_cb)
try:
mainloop.run()
except KeyboardInterrupt:
adv.Release()
mainloop.quit()
if __name__ == '__main__':
main()
请你帮我知道, 为 BLE GATT 服务器添加身份验证需要进行哪些配置?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。