【发布时间】:2015-05-01 07:58:12
【问题描述】:
您好,我不确定我是否遗漏了什么,或者这是否不在我认为短视的 API 中。
SDK 能否在后台任务中向乐队发送通知?这对我来说似乎是最有用的事情之一,但是当我尝试时出现错误。 'bandClient.NotificationManager.SendMessageAsync' 是它引发异常的地方。后台任务是定时任务。
后台代码很简单,我在后台和UI线程上试了一下。
试试
{
// Get the list of Microsoft Bands paired to the phone.
IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
if (pairedBands.Length < 1)
{
deferral.Complete();
}
// Connect to Microsoft Band.
using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]))
{
await bandClient.NotificationManager.SendMessageAsync(myTileId, "Earnings", currentDollars.ToString(), DateTimeOffset.Now, f);
}
}
catch (Exception ex)
异常和堆栈跟踪:
ex = {System.Exception:灾难性故障(来自 HRESULT 的异常: 0x8000FFFF (E_UNEXPECTED))
在 Windows.UI.Xaml.Application.get_Current()
在 Microsoft.Band.BandClientManager.d__2.MoveNext()
--- 上一个位置的堆栈跟踪结束...
在 Windows.UI.Xaml.Application.get_Current()
在 Microsoft.Band.BandClientManager.d__2.MoveNext()
--- 从先前抛出异常的位置结束堆栈跟踪---
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)
在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
在 WindowsRuntimeComponent1.AppTileUpdater.d__8.MoveNext()
【问题讨论】:
-
你能连接到设备吗?
-
好问题,是的,我可以。所以我的应用程序很简单,后台任务和 Windows 手机应用程序。 windows phone 应用程序可以很好地连接到乐队,添加一个磁贴并可以发送通知。如果我在后台任务中使用相同的代码进行连接并发送通知,则连接失败。我确实也为两者设置了 rfcomm 权限的 appxmanifest,nuget 添加了它们。
标签: c# windows-runtime windows-phone-8.1 microsoft-band