我正在开发Windows Phone 8应用程序并尝试通过 DataTransferManager 共享内容。Windows API 文档说它在 Windows Phone 中受支持,但是当DataTransferManager.GetForCurrentView()
调用该函数时出现异常
System.NotSupportedException was unhandled by user code
HResult=-2146233067
Message=Specified method is not supported.
Source=Windows
InnerException:
我一直在寻找答案,找不到其他人有同样的问题,任何帮助将不胜感激。此主题的所有示例似乎都是特定于 Windows 8 的,但 Phone 8 确实包含这些功能。这是我的应用程序中的示例代码。
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView();
dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(dataTransferManager_DataRequested);
}
private void dataTransferManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs e)
{
DataPackage requestData = e.Request.Data;
requestData.Properties.Title = "Share Text Example";
requestData.Properties.Description = "An example of how to share text.";
requestData.SetText("Hello World!");
}
private void Button_Tap_1(object sender, System.Windows.Input.GestureEventArgs e)
{
DataTransferManager.ShowShareUI();
}
同样,当页面加载到DataTransferManager.GetForCurrentView();
函数上时会显示异常,因此它不会到达其他行,但无论如何都会包含它们。我已经尝试添加/删除权限和程序集,但一定缺少一些东西。我还尝试将函数放在不同的事件中(例如 onTap 函数),结果相同。
如果有人有兴趣自己尝试,这里有一些文档:
更新
尽管考虑到这个问题的上下文,它可能不是最好的解决方案,但我正在执行如下所述的电子邮件/短信/链接任务,而不是使用 DataTransferManager。似乎 DataTransferManager 在 WP8 中可能无法访问,尽管这些任务将采用许多不同的功能,但它们似乎是执行预期功能的最佳方式。