如何在一台UWP设备中跨应用程序发送字符串?

时间:2018-09-07 10:58:13

标签: uwp windows-10-iot-core cross-application

我正在开发由三个分离的应用程序组成的应用程序。 (两个背景,一个带有GUI)在运行Windows 10 IOT Core的Raspberry PI 3B +上运行。原理图很简单

通讯器->数据转换->可视化

我的问题是,没有用户活动,我无法有效地将数据从一个应用程序发送到另一个应用程序。 Windows数据传输解决方案需要用户采取措施或启动其他应用。 (https://docs.microsoft.com/en-us/windows/uwp/app-to-app/

数据是将JSON序列化为字符串的短对象。

我尝试了TCP协议,但是在一个设备跨应用程序上不允许使用它(为什么?我不理解)。

现在,我通过在“图片”文件夹中创建文本文件来执行此操作,下一个应用程序将读取该文件并删除该文件。这种方法很慢,经常崩溃。

还有其他解决方案吗?最好的选择是流或某种快速的文件传输。

感谢任何想法。

解决方案:https://docs.microsoft.com/en-us/windows/uwp/launch-resume/how-to-create-and-consume-an-app-service

这并不完美,因为在后台任务中,您将执行另一个后台任务。但是效果很好。

2 个答案:

答案 0 :(得分:1)

看看这个:https://docs.microsoft.com/en-us/windows/uwp/launch-resume/how-to-create-and-consume-an-app-service

它可以让您在同一设备上将数据发送到其他应用程序的后台任务

答案 1 :(得分:1)

https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/AppServiceBridgeSample/cs

这是IMO最干净,最直接的示例,即从UWP到后台桌面应用的双向通信中使用服务,在解决方案的Win32部分中,“ Windows”引用是错误的,请删除并按照浏览选项进行尝试,通常在 c>程序文件x86> Windows Kits> UnionMetadata> yourversion> windows.winmd 中,该示例也很旧,因此您可能想更改NET和Min Windows的默认版本。

这个Windows.winmd文件是什么,它只是一个元数据文件,允许经典的win32桌面应用程序理解和读取UWP使用的较新的Apis。

该应用程序还使用UWP的runfulltrust功能,这是触发win32应用程序的一种可靠方法,可以检查一些文章并查看清单以了解是否有兴趣的模式。