我有一个byte[]
包含图片数据。我想将此图片数据设置为 windows phone 8 中 StoredContact 的显示图片。我尝试过:
byte[] data = ...
ContactStore store = await ContactStore.CreateOrOpenAsync(ContactStoreSystemAccessMode.ReadWrite, ContactStoreApplicationAccessMode.ReadOnly);
StoredContact contact = await store.FindContactByRemoteIdAsync(remoteId);
using (IInputStream stream = new MemoryStream(data).AsInputStream())
{
await contact.SetDisplayPictureAsync(stream);
}
但我System.UnauthorizedAccessException
接听AsInputStream()
电话。我有ID_CAP_CONTACTS
-capability 集,并且联系人属于自定义数据存储,我对其具有写访问权限。有谁知道如何解决这个问题?
编辑:
我从 Web 请求中获取数据,使用以下内容提取字节数据:
DataContractJsonSerializer serializer = new DataContractJsonSerializer(new PhotoObject().GetType());
var result = (PhotoObject)serializer.ReadObject(stream);
byte[] data = Convert.FromBase64String(result.Data);
[DataContract]
class PhotoObject
{
[DataMember(Name = "size")]
public string Size { get; set; }
[DataMember(Name = "data")]
public string Data { get; set; }
}