2011-12-15 37 views
0

我希望得到一個電話號碼從通訊錄撥打電話#,這裏是代碼我測試:Android的 - 如何從聯繫人

ContentResolver cr = getContentResolver(); 
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, 
       null, null, null, null);  

if (Integer.parseInt(cur.getString(
       cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
      Cursor pCur = cr.query(
     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
     null, 
     ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
     new String[]{id}, null); 
     while (pCur.moveToNext()) { 
     // Do something with phones 
     } 
     pCur.close(); 
    } 

出於某種原因,在「新斯汀得到錯誤[] {id},null); Eclipse的錯誤#1 -id不能被解析到一個變量 Eclipse的錯誤#2型不匹配:無法從ArrayList中轉換爲字符串

看來也許,因爲我是個菜鳥,「ID」已被使用的ArrayList ?但是當我將'id'更改爲'id2'時,Elcipse仍然像它一樣...

請指教?

感謝, FlinxSYS

+1

從您發佈的代碼,我們無法瞭解什麼是可變的 '身份證'。你在哪裏定義'id'和它的價值是什麼? – Karthik 2011-12-15 02:56:38

回答

0

這裏是你的工作代碼:

public static void getContacts(ContentResolver cr) { 
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
    if (cur.getCount() > 0) { 
     while (cur.moveToNext()) { 
     // read id 
      String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
      // read names 
      String displayName = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
      // Phone Numbers 
       Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
         ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null); 
       while (pCur.moveToNext()) { 
        String number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
        String typeStr = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); 
      } 
      pCur.close(); 
... 

參考:http://ganeshtiwaridotcomdotnp.blogspot.com/2011/10/android-code-for-reading-phone-contacts.html

+0

gt_ebuddy - 我在哪裏放置我的搜索聯繫人姓名,例如'Sam',是否可以從我的聯繫人列表中獲取Sam's#?我想了解請。 – user1082770 2012-01-05 13:29:01