uwp - [C#][UWP] GattCharacteristicNotificationTrigger 在设备重启时停止
问题描述
在 UWP 应用程序(SDK 目标周年更新)中,我遇到了一个非常烦人的问题。
我有一个蓝牙低功耗设备,我可以毫无问题地连接(PC 和移动平台),对 GATT 服务和特性的读/写操作有效,但是用于电池状态通知的 GattCharacteristicNotificationTrigger 触发器的后台任务根本不可靠。
只要我第一次注册任务,这工作正常,但是当
- 我关闭/重新启动连接的设备(UWP GATT 客户端)
或者
- 我关闭/重新启动 BLE 设备(GATT 服务器)
任务停止运行,直到在前台重新打开应用程序并重新注册任务。
这是一个根本不舒服的操作,特别是如果我总是想知道电池状态,并且使用 TimerTrigger 并不是最好的,至少每 15 分钟触发一次。
我试图找到有关触发器的更多信息,但我没有找到任何东西。
我做错了什么?(触发器是指当两个设备之一关闭时停止?)
PS .:出于顾虑,我尝试以经典方式(在进程外,在单独的 Windows 运行时组件中)和随着周年更新引入的新方式记录任务,但没有任何改变。
先感谢您。
解决方案
这是正常的行为,当连接由于某种原因丢失时,服务器会在几秒钟后断开连接并丢失所有连接信息并重新开始广播,因此任何客户端都可以发现、连接或重新连接。处理此问题的最佳方法是进行断开连接事件并在断开连接时:处置设备、创建新设备、连接并重新注册以获取通知。
推荐阅读
- javascript - Vis.js 时间轴动态变化
- sql - 从 text(char(50)) 转换为日期时间
- c# - 防止丢失智能卡的 Windows 安全弹出窗口
- ms-access - 命令按钮的单击事件不会针对相同形式的不同记录更新
- postgresql - Postgres 表空间检测是 linux 还是 windows
- docker - 为什么在 docker 上运行 go api 在被邮递员击中时会给出响应?
- github - 如何将文件夹 / GitHub 存储库链接到 Heroku?
- mysql - 在 mysql sp 中处理单引号和双引号
- css - 使用 GO 导入的 Style.css 出现 MIME 错误
- javascript - 使用 react-intl 翻译组件外的消息键