gpt4 book ai didi

ios - 无法从联系人中获取 ABPerson 的图像

转载 作者:行者123 更新时间:2023-11-28 21:29:00 25 4
gpt4 key购买 nike

我正在使用 Xamarin 尝试从 AddressBook 获取来自 ABPerson 的图像。我成功获取了有关人名、电话等的所有信息。但是方法 ABPerson.HasImage 对所有联系人返回 false,即使是那些在地址簿和方法中有照片的联系人也是如此 ABPerson.GetImage 也总是返回 null。我试图不仅在模拟器上测试它,还在设备上测试它。有人知道我该如何解决吗?

我用来检索联系人的代码:

using (var addressBook = new ABAddressBook()){
addressBook.requestAccess((bool haveAccess, NSError e) => {
if(haveAccess){
contacts = addressBook.GetPeople().ToList();
}
});
}

最佳答案

这个例子只是从模拟器中抓取默认的联系人,其中有我应用于其中一些的图像。

尝试使用此代码替换您的代码并检查应用程序输出以查看具有图像的 ABPerson 是否正确显示。

示例代码:

var addressBook = new ABAddressBook();
var contacts = addressBook.GetPeople();
foreach (var contact in contacts)
{
D.WriteLine("{0} {1}", contact.FirstName, contact.LastName);
D.WriteLine("Has image?: {0}", contact.HasImage);
if (contact.HasImage)
{
var thumb = contact.GetImage(ABPersonImageFormat.Thumbnail);
var full = contact.GetImage(ABPersonImageFormat.OriginalSize);
var thumbsize = thumb.GetBase64EncodedString(NSDataBase64EncodingOptions.None);
var fullsize = full.GetBase64EncodedString(NSDataBase64EncodingOptions.None);
D.WriteLine("Thumb length: {0}", thumbsize.Length);
D.WriteLine("Full length: {0}", fullsize.Length);
}
}
addressBook.Dispose();

注意:Dusing D = System.Diagnostics.Debug;

输出:

Kate Bell
Has image?: False
Daniel Higgins
Has image?: True
Thumb length: 35988
Full length: 196492
John Appleseed
Has image?: True
Thumb length: 59180
Full length: 1691176
Anna Haro
Has image?: False
Hank Zakroff
Has image?: True
Thumb length: 50364
Full length: 3473024
David Taylor
Has image?: False

关于ios - 无法从联系人中获取 ABPerson 的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36988002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com