2011-03-16 21 views
0

我正在嘗試獲取聯繫人的所有電話號碼。當我查詢與光標聯繫的數字時,我得到每個數字的重複。在窺探之後,我認爲這是由於鏈接配置文件(即Google配置文件和電話聯繫人配置文件)。這裏是我的拉出數字代碼:Android聯繫人查詢獲取重複項

Cursor cursor = getContentResolver().query(
    Phone.CONTENT_URI, 
    new String[]{PhoneLookup.NUMBER}, 
    Phone.CONTACT_ID + "=?", 
    new String[]{id}, null); 
while(cursor.moveToNext()) { 
    String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
    Toast.makeText(getApplicationContext(), phoneNumber, Toast.LENGTH_LONG).show(); 
} 
cursor.close(); 

有沒有辦法來限制該查詢到某一個人資料? 在此先感謝。我已經搜索了一段時間,並找不到任何解決方案。

回答

0

我最近在掙扎着類似的東西(例如,缺少group by子句),我設法通過將ContentProvider中的數據插入臨時表並查詢結果表來解決問題。

故事是,ContentProvider背後的數據可能不是數據庫。它可以是XML,JSON,FileSystem等等......所以這些沒有「分組依據」選項,因此他們將其排除在外。你也不能總是假設(_id)會起作用。