0
可以說我在通話記錄中有100個電話。我想找到他們被稱爲唯一的聯繫人(不是數字)。 問題是,如果一個聯繫人有兩個電話號碼(例如,對於聯繫人A,我有一個家庭號碼,另一個號碼是手機號碼),我會將該聯繫人統計兩次!Android:從通話記錄中獲取唯一的聯繫人
我嘗試了以下。 我正在閱讀通話記錄。然後呼叫日誌我叫下面的自定義功能中的各個號碼:
private String getContactID (String number)
{
String contactID = "";
ContentResolver context = getContentResolver();
/// number is the phone number
Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,Uri.encode(number));
String[] mPhoneNumberProjection = { PhoneLookup._ID };
Cursor cur = context.query(lookupUri,mPhoneNumberProjection, null, null, null);
try
{
if (cur.moveToFirst())
{
contactID = cur.getString(0);
return contactID;
}
}
finally
{
if (cur != null)
cur.close();
}
return contactID;
}
於是我有聯絡人ID和呼叫的時間戳的calllog並使用一組我得到的唯一... 以上代碼工作正常,但性能如果很差!我在一個新的谷歌Nexus 4中試用了它,它大約需要1600毫秒!我不想考慮更舊的智能手機...
有什麼建議嗎?
這個問題似乎正在考慮你的問題http://stackoverflow.com/questions/8654904/group-by-in-contentresolver-in-ice-cream-sandwich – 2013-03-07 09:44:05