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