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