首页 > 解决方案 > [C#][UWP] GattCharacteristicNotificationTrigger 在设备重启时停止

问题描述

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

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

只要我第一次注册任务,这工作正常,但是当

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

或者

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

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

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

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

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

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

先感谢您。

标签: uwpwindows-runtimebluetooth-lowenergy

解决方案


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


推荐阅读