如何使用UWP创建一个没有UI的后台应用程序?

4

我需要在后台运行BLE发现,并在找到设备时显示toast。这是使用UWPUI完成的。但我只需要后台应用程序。有没有办法?


添加一些代码片段和更多信息。 - FoldFence
1
在任何Windows中都可以进行后台任务。在UWP中也可以进行后台任务,它们在应用程序启动时被注册。您可以创建一个没有添加任何视图的应用程序。不过,请不要期望微软会在商店上批准它。如果您想知道如何,您需要解释一下您的问题出在哪里 :) - Nahuel Ianni
即使没有UI,也无法注册后台任务。 - Sunteen Wu
1
@NahuelIanni 请详细说明如何创建一个没有UI的应用程序。我的确切问题是需要在没有任何UI的情况下运行我的应用程序,如果BLE设备进入范围,则应显示Toast。所有功能都使用UWP App完成。但我无法做到没有任何视图。 - Lukmanul Hakim
显示剩余2条评论
2个回答

2
首先,我认为最好澄清一下,即使您想创建在后台运行的UWP应用程序,也必须从Visual Studio模板中创建普通的通用Windows应用程序:

enter image description here

每个UWP应用程序都可以注册后台任务来执行一些后台操作。
您可以在下面的链接中找到整个实现指南:

https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/create-and-register-a-background-task

后台任务必须由应用程序进行注册,因此没有办法仅创建后台任务而没有应用程序。 同时请记住,没有用户界面的应用程序将无法通过Windows Store的认证。

谢谢您的评论,我需要它作为后台应用程序运行。不应该有用户界面。 :( - Lukmanul Hakim
很遗憾,目前还不可能。 - Daniel Krzyczkowski
你能为以下问题提供任何解决方法吗:需要枚举 BLE 设备。当找到特定设备时,它应该显示一个弹出窗口以配对设备。在其他时间,它应该作为后台应用程序工作。谢谢 :) - Lukmanul Hakim
是的,我已经在 DLL(通用 Windows)中编写了代码。 - Lukmanul Hakim
GattCharacteristicNotificationTrigger 可能会对您有所帮助。 - tao

1

Lukmanul Hakim,

我遇到了类似的问题,并发现最好的方法是通过Windows服务。特别是:

  • BluetoothLEAdvertisementWatcher在Windows服务、单元测试项目和UWP包中(具有正确的清单功能)可以工作。
  • 广告观察器在WPF桌面应用程序和.net命令行程序中执行,但不提供数据/事件。
  • 正如您所指出的,UWP似乎需要烦人的UI,并且只能通过应用程序服务以有限的方式进行通信。
  • 一旦您在Windows服务中获得了数据,就可以在那里处理或使用命名管道等常规IPC机制与任何桌面应用程序进行通信。
  • 您需要安装Windows 10 SDK并引用Windows运行时,通常位于:C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd

以下是获取广告的基本代码供参考:

 var watcher = new BluetoothLEAdvertisementWatcher(); 
 watcher.Received += OnAdvertismentReceived;                      
 watcher.Start();

对一个相关问题进行了更多的研究,如果包含正确的WindowsRuntime dll,您应该能够使用任何常规的桌面应用程序。[链接]http://stackoverflow.com/questions/38819116/how-do-you-get-a-ble-advertisment-callback-in-a-desktop-net-app - David Warden
请您能否详细说明一下。我对Windows应用程序还很陌生,可以提供步骤指导吗?我已经有了BLE枚举代码,请帮我一下,我觉得您在这种情况下可以帮助我。我的Skype ID:lookzlook - Lukmanul Hakim
谢谢David。我从你发的链接中找到了解决方案。非常感谢。 - Lukmanul Hakim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接