我正在使用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可以通过内容提供商和内容解析器访问其他应用程序中的文件.因此,您首先必须将该内容:// scheme URL转换为文件流.你可以这样做:// 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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)