私はWindowsPhone8アプリに取り組んでおり、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:
私は答えを探していましたが、同じ問題を抱えている人を見つけることができません。助けていただければ幸いです。このトピックに関するすべてのサンプルはWindows8固有のようですが、Phone8にはこれらの機能が含まれています。これが私のアプリのサンプルコードです。
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を使用するのではなく、以下に説明するように電子メール/SMS/リンクタスクを実装しています。WP8ではDataTransferManagerにアクセスできない可能性があり、タスクはさまざまな機能を実行しますが、目的の機能を実行するための最良の方法のようです。