Android 如何从电话簿中获取上次插入的联系人号码?
如何从android电话簿中获取最后插入的联系人号码。我已经完成了从数据库中获取所有唯一联系人号码及其计数的工作,并且我还制作了一个ContentObserver,用于侦听电话簿相关的更新。但现在我想要最后插入的联系人号码。我把我所有的代码都放在这里 这是我获取所有联系人的代码:-Android 如何从电话簿中获取上次插入的联系人号码?,android,android-contacts,Android,Android Contacts,如何从android电话簿中获取最后插入的联系人号码。我已经完成了从数据库中获取所有唯一联系人号码及其计数的工作,并且我还制作了一个ContentObserver,用于侦听电话簿相关的更新。但现在我想要最后插入的联系人号码。我把我所有的代码都放在这里 这是我获取所有联系人的代码:- Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, n
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
while (phones.moveToNext()) {
phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
listNumbers.add(phoneNumber);
}
ArrayList<String> unique = removeDuplicates(listNumbers);
for (String element : unique) {
System.out.println(element);
}
sb = new StringBuffer();
for (String item : unique) {
if (sb.length() > 0) {
sb.append(',');
}
sb.append(item);
}
numbersString = sb.toString();
// Log.e("BUFFER", numbersString.toString());
phones.close();
Log.e("SIZE", unique.size() + "");
Cursor phones=getContentResolver().query(ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,null,null,null);
while(phones.moveToNext()){
phoneNumber=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataTypes.Phone.NUMBER));
添加(电话号码);
}
ArrayList unique=移除的副本(列表编号);
for(字符串元素:唯一){
系统输出打印项次(元素);
}
sb=新的StringBuffer();
for(字符串项:唯一){
如果(sb.length()>0){
某人附加(“,”);
}
某人附加(项目);
}
numberString=sb.toString();
//Log.e(“BUFFER”,numberString.toString());
电话。关闭();
Log.e(“SIZE”,unique.SIZE()+”);
下面是contentobserver的代码:-
private ContentObserver mObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
final int currentCount = getContactCount();
if (currentCount < mContactCount) {
// DELETE HAPPEN.
Log.e("STATUS===>", "Deletion");
} else if (currentCount == mContactCount) {
// UPDATE HAPPEN.
} else {
// INSERT HAPPEN.
Log.e("STATUS===>", "Insertion");
}
mContactCount = currentCount;
}
};
private ContentObserver mObserver=new ContentObserver(new Handler()){
@凌驾
公共void onChange(布尔自更改){
super.onChange(selfChange);
最终int currentCount=getContactCount();
如果(currentCount”,“删除”);
}else if(currentCount==mContactCount){
//更新会发生。
}否则{
//插入发生。
Log.e(“状态===>”,“插入”);
}
mContactCount=当前计数;
}
};
在onchange-INSERT条件下,我需要新添加的联系人号码。Android没有提供这样做的方法。与我交谈过的大多数想这样做的人最后不得不再次扫描所有联系人,并找出他们自己与上次扫描所有联系人时的不同之处。是的,我按照您所说的方式进行了操作,并添加了一些逻辑,从而能够得到解决方案。