【发布时间】:2020-05-18 03:13:10
【问题描述】:
我尝试使用插件Xamarin.Forms.Contacts 并点击 github 链接,
https://gist.github.com/enisn/25fd0a63a849854fb6103aa681be9963
但是,当我编译和调试时,屏幕上什么也没有显示。我也将插件添加到 Android 和 iOS 并设置了所需的权限。
在GetContacts() 的第一行中,Debugger 死掉了,没有移动到另一行。
public ContactList()
{
InitializeComponent();
GetContacs();
}
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
async Task GetContacs()
{
var contacts = await Plugin.ContactService.CrossContactService.Current.GetContactListAsync();
lstContacts.BindingContext = contacts;
},
我还按照链接上的教程进行操作,https://www.xamboy.com/2019/10/10/getting-phone-contacts-in-xamarin-forms/ 在本教程中,我发现了权限功能的问题,调试器也死在这里,在 if 条件下验证权限。
`public async Task<bool> RequestPermissionAsync()
{
contactPermissionTcs = new TaskCompletionSource<bool>();
// Verify that all required contact permissions have been granted.
if (Android.Support.V4.Content.ContextCompat.CheckSelfPermission(CrossCurrentActivity.Current.Activity, Manifest.Permission.ReadContacts) != (int)Permission.Granted
|| Android.Support.V4.Content.ContextCompat.CheckSelfPermission(CrossCurrentActivity.Current.Activity, Manifest.Permission.WriteContacts) != (int)Permission.Granted)
{
// Contacts permissions have not been granted.
RequestContactsPermissions();
}
else
{
// Contact permissions have been granted.
contactPermissionTcs.TrySetResult(true);
}
return await contactPermissionTcs.Task;
}`
这也不起作用。
是否有任何建议或建议可以让我的任务更轻松?
【问题讨论】:
-
请在您的帖子中包含相关代码 - 不要只是链接到某些外部 repo 或博客条目
-
关于插件,代码的主要部分仅是该行。现在,我又加了一点
-
自述文件的第一行“此插件未在开发中且不受支持” - 3 年多未更新
-
还有其他选择吗?
-
您可能需要在平台代码中编写它并使用DependencyService
标签: c# xamarin xamarin.forms xamarin.essentials