2011-07-05 54 views
8

我在Android中查詢聯繫人內建的聯繫人提供程序URI。我想獲取PHONE聯繫人;有沒有一致的方法來做到這一點?從我能發現的情況看來,手機聯繫人的帳戶名稱因製造商而異(參見this question)。是否有辦法以一致,可靠,與製造商和設備無關的方式獲得PHONE聯繫人(而非SIM,Facebook,Twitter或其他人)?在Android中,您如何選擇僅PHONE聯繫人?

+0

是否要獲取所有具有電話號碼的聯繫人?或者您是指從SIM卡導入的所有聯繫人? – michaelg

+0

我一直在尋找所有存儲在「手機上」通訊錄中的聯繫人,而不管他們是否有電話號碼,電子郵件或什麼。我想我可以通過加入我的查詢'帳戶'表,並尋找帳戶名稱'vnd.sec.contact.phone',但在線閱讀,它看起來像該帳戶名稱是製造商(可能是設備?)具體。 – eidylon

回答

-1
  Cursor cursor = null; 

       try { 

        String selection = ContactsContract.Data._ID + " = ?"; 
        String[] selectionArgs = new String[] { id }; 
        String[] projection = new String[] { ContactsContract.PhoneLookup.NUMBER}; 

        cursor = getContentResolver().query(
          ContactsContract.Contacts.CONTENT_URI, 
          projection, selection, selectionArgs, null); 

        if (cursor == null || !cursor.moveToFirst()) 
         return; 

        String phone = cursor.getString(0); 



       } finally { 
        if (cursor != null && !cursor.isClosed()) 
         try { 
          cursor.close(); 
         } catch (Throwable ignore) { 
          // Ignored. 
         } 
       } 

其中「?」是用戶ID,您可以將此代碼放入循環中。

+0

除非我誤解了這段代碼,否則這隻會找到我來自任何來源(手機,SIM卡,臉譜,微博等)的所有聯繫人,但只有誰擁有電話號碼?我只想從手機上找到聯繫人,不管他們是否有電話號碼。 – eidylon

+0

你有權利,我誤解了你的問題。我以爲你試圖獲得特定用戶(ID)的電話號碼。我會盡力爲你找到答案。對於那個很抱歉。 – vsm

+0

沒問題,謝謝你的努力! :) – eidylon

相關問題