私はこれを解決するのに苦労しています。私が達成しようとしているのは、アプリが受信した画像を処理できるように、アプリの共有 (受信ポイント) 機能を作成することです。
1)受信は通常機能します(1つのアプリからのみこの問題に遭遇しました)2)アプリとの接続に失敗した「ドナー」アプリは、別のアプリ(たとえばSkyDrive)に画像を共有します3)私のマニフェストは問題ないようです私には、データ形式が登録され、ファイルの種類が選択されています
デバッグすると、ドナーアプリから正しいデータ形式 (「ビットマップ」) を取得し、ビットマップ形式も問題ありません (png)。
さらに、プール プロセスを開始すると、IRandomAccessStreamWithContentType が RandomAccessStreamReference からフェッチされ、ストリーム サイズが正しく表示されます。
このストリームを DataReader に読み込もうとすると、「アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))」という例外が発生します。
繰り返しますが、別のアプリから画像を共有しようとすると、問題なく機能し、問題を引き起こしている「ドナー」アプリから別のアプリ (私のものではない) に共有すると、それも機能します。では、ドナーと明示的に設定されたアプリケーションとの間に「信頼」の問題があるに違いありませんか? それは可能ですか?
これは、実行する必要があるすべてのことを実行するコード スニペットです。
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
_sharedData = (ShareOperation)e.Parameter;
try
{
IBuffer theBuffer = null;
_sharedData.ReportStarted();
if (_sharedData.Data.Contains("bitmap") || _sharedData.Data.Contains("Bitmap"))
{
var refe = await _sharedData.Data.GetBitmapAsync();
using (var originalImageStream = await refe.OpenReadAsync())
{
var dataReader = new DataReader(originalImageStream.GetInputStreamAt(0));
failure --> await dataReader.LoadAsync((uint) originalImageStream.Size);
theBuffer = dataReader.ReadBuffer((uint) originalImageStream.Size);
}
}
....
}
catch (Exception ex)
{
}
}
そしてマニフェストファイル
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest">
<Identity Name="enter your guid" Publisher="CN=author" Version="1.0.0.2" />
<Properties>
<DisplayName>My App</DisplayName>
<PublisherDisplayName>Author</PublisherDisplayName>
<Logo>Assets\LogoForStore.png</Logo>
</Properties>
<Prerequisites>
<OSMinVersion>6.2.1</OSMinVersion>
<OSMaxVersionTested>6.2.1</OSMaxVersionTested>
</Prerequisites>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="MyApp.App">
<VisualElements DisplayName="MyApp" Logo="Assets\Logo.png" SmallLogo="Assets\SmallLogo.png" Description="MyApp" ForegroundText="light" BackgroundColor="#464646" ToastCapable="false">
<DefaultTile ShowName="allLogos" WideLogo="Assets\WideLogo.png" ShortName="MyApp" />
<SplashScreen Image="Assets\SplashScreen.png" />
<InitialRotationPreference>
<Rotation Preference="landscape" />
<Rotation Preference="landscapeFlipped" />
</InitialRotationPreference>
</VisualElements>
<Extensions>
<Extension Category="windows.accountPictureProvider" />
<Extension Category="windows.cameraSettings" />
<Extension Category="windows.shareTarget">
<ShareTarget>
<SupportedFileTypes>
<FileType>.png</FileType>
<FileType>.jpg</FileType>
<FileType>.gif</FileType>
</SupportedFileTypes>
<DataFormat>Bitmap</DataFormat>
<DataFormat>StorageItems</DataFormat>
</ShareTarget>
</Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<Capability Name="picturesLibrary" />
<DeviceCapability Name="webcam" />
</Capabilities>
</Package>
どんなアイデアでも大歓迎です!
M.