我正在开发一个WP8.1 silverlight应用程序,它接收WNS通知。它在模拟器上工作正常,但在设备(lumia 640)上,它在以下api调用时崩溃:
var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
我收到以下错误:
- _exception {System.Exception:来自HRESULT的异常:0x880403E8 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在System.Runtime.CompilerServices.TaskAwaiter
1.GetResult() at BC_Menu.App.<UploadChannel>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter
1.GetResult() at BC_Menu.StartUp.FirstPage.d__4.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.b__3(Object state)} System.Exception
如果我尝试使用其他设备(lumia 920),它可以正常工作。这些设备之间的直接区别在于我在Lumia 640上有一个虚拟账户而且没有SIM卡,但我能够安装和更新程序。这应该意味着帐户已正确初始化。还有什么可能是这个问题?
答案 0 :(得分:0)
您崩溃了,因为Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync()调用因为设备未连接到WNS而引发异常。确保你处理这种情况(例如使用try / catch) - 你的用户可能并不总是连接到互联网,这是获得频道所必需的。
至于为什么该设备没有连接到WNS - 如果你有没有 SIM卡,设备应该通过Wi-Fi连接。如果您在企业中进行开发,请确保他们不会阻止出站连接(这会导致设备无法连接到WNS)。如果您安装了SIM卡但没有数据,则存在一个已知的错误,即设备仍将尝试通过蜂窝数据进行连接(当然这会失败)。如果是这种情况,只需删除无数据SIM或禁用手机。