Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 获取联系人图片Xamarin Forms大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用Xamarin Forms创建一个混合移动应用程序.我想显示所有电话簿联系人的列表,其中包含以下详细信息:

>姓名
>图片

我在android清单中添加了“READ_CONTACTS”权限.以下是获取所有联系人的代码

var contactList = new List < mcontacts="" >="" ();="" var="" contactdetailuri="ContactsContract.Contacts.ContentUri;" string[]="" contactdetailprojection="{" contactscontract.contacts.interfaceconsts.id,contactscontract.contacts.interfaceconsts.displayname,contactscontract.contactscolumns.contactlastupdatedtimestamp,contactscontract.contacts.interfaceconsts.photoid,contactscontract.contacts.interfaceconsts.photouri,contactscontract.contacts.interfaceconsts.photofileid,contactscontract.contacts.interfaceconsts.photothumbnailuri="" };="" var="" contactdetailcursor="Forms.Context.ContentResolver.Query(" contactdetailuri,contactdetailprojection,null,null="" );="" if="" (contactdetailcursor.movetofirst())="" {="" do="" {="" var="" contact="new" mcontacts();="" contact.id="ContactDetailCursor.GetLong(ContactDetailCursor.GetColumnIndex(ContactDetailProjection[0]));" contact.displayname="ContactDetailCursor.GetString(ContactDetailCursor.GetColumnIndex(ContactDetailProjection[1]));" contact.photoid="ContactDetailCursor.GetString(ContactDetailCursor.GetColumnIndex(ContactDetailProjection[6]));" contactlist.add(contact);="" }="" while="" (contactdetailcursor.movetonext());="" }="" return="" contactlist;="">

我有一个XAML页面,它将显示数据.我正在使用Image Cell.以下是XAML代码

我收到了联系人姓名,但在图片领域我只得到这个:

content://com.android.contacts/contacts/1/photo

我该怎么做才能显示图像?我在这里错过了什么?

附:我不想使用Xamarin.Mobile组件或任何其他组件.

最佳答案
Android可以通过内容提供商和内容解析器访问其他应用程序中的@L_607_17@.因此,您首先必须将该内容:// scheR_770_11845@e URL转换为@L_607_17@流.你可以这样做:

// convert uri to stream (Android code,ContentResolver is a property of the Activity class):
var stream = ContentResolver.openInputStream(uri);

// or when not in an activity (e.g. a servicE):
var otherStream = Android.App.Application.Context.ContentResolver.openInputStream(uri);

// eventually convert the stream to imagesource for consumption in Xamarin Forms:
var imagesource = Xamarin.Forms.Imagesource.FromStream(() => stream);

有关更多信息,请参阅以下资源:

> https://developer.xamarin.com/guides/android/platform_features/intro_to_content_providers/
> https://developer.android.com/guide/topics/providers/content-providers.html

大佬总结

以上是大佬教程为你收集整理的android – 获取联系人图片Xamarin Forms全部内容,希望文章能够帮你解决android – 获取联系人图片Xamarin Forms所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。