【问题标题】:[C#][UWP] GattCharacteristicNotificationTrigger stopped on device reboot[C#][UWP] GattCharacteristicNotificationTrigger 在设备重启时停止
【发布时间】:2018-06-06 13:45:22
【问题描述】:

在 UWP 应用程序(SDK 目标周年更新)中,我遇到了一个非常烦人的问题。

我有一个蓝牙低功耗设备,我可以毫无问题地连接(PC 和移动平台),GATT 服务和特性的读/写操作有效,但是用于电池状态通知的 GattCharacteristicNotificationTrigger 触发器的后台任务根本不可靠.

只要我第一次注册任务,就可以了,但是当

  1. 我关闭/重新启动连接的设备(UWP GATT 客户端)

  1. 我关闭/重新启动 BLE 设备(GATT 服务器)

任务停止运行,直到在前台重新打开应用程序并重新注册任务。

这是一个非常不舒服的操作,特别是如果我总是想知道电池状态,并且使用 TimerTrigger 并不是最好的,至少每 15 分钟触发一次。

我试图找到有关触发器的更多信息,但没有找到任何信息。

我做错了什么? (触发器是指当两个设备之一关闭时停止?)

P.S .:出于顾虑,我尝试以经典方式(进程外,在单独的 Windows 运行时组件中)和随着周年更新引入的新方式记录任务,但没有任何改变。

提前谢谢你。

【问题讨论】:

    标签: uwp windows-runtime bluetooth-lowenergy


    【解决方案1】:

    这是正常行为,当连接由于某种原因丢失时,服务器将在几秒钟后断开连接并丢失所有连接信息并重新开始广播,因此任何客户端都可以发现、连接或重新连接。 处理此问题的最佳方法是进行断开连接的事件并在断开连接时: 处置设备,创建新设备,连接并重新注册通知。

    【讨论】:

    • 问题是不能在后台重新注册后台任务,只能在前台重新注册。我什至不能使用 TimerTrigger 或 SystemTrigger
    • 这就是一些Ble设备可以配对的原因。这样就可以保存所有信息并保持连接。有一个问题;许多BLE设备在关闭时会丢失信息,以保存非易失性存储器或根本没有它。因此,如果您的设备支持配对,请走那条路。
    猜你喜欢
    • 2019-03-28
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 2022-08-05
    • 1970-01-01
    • 2018-05-17
    相关资源
    最近更新 更多