2

私はこれを解決するのに苦労しています。私が達成しようとしているのは、アプリが受信した画像を処理できるように、アプリの共有 (受信ポイント) 機能を作成することです。

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.

4

0 に答える 0