2

我很难解决这个问题。我想要实现的是为我的应用程序提供共享(接收点)功能,以便应用程序可以处理接收到的图像。

1)接收通常有效(我只从一个应用程序遇到这个问题)2)无法与我的应用程序连接的“捐助者”应用程序将图像共享给另一个应用程序(例如 SkyDrive)很好 3)我的清单看起来很好对我来说,注册了数据格式并选择了文件类型

当我调试时,我从捐赠者应用程序中获得了正确的数据格式(它是一个“位图”),并且位图格式也可以(png)。

此外,当我启动池进程时,从 RandomAccessStreamReference 中获取 IRandomAccessStreamWithContentType 并正确显示流大小。

当我尝试将此流读取到 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