Android 如何从电话簿中获取上次插入的联系人号码?

Android 如何从电话簿中获取上次插入的联系人号码?,android,android-contacts,Android,Android Contacts,如何从android电话簿中获取最后插入的联系人号码。我已经完成了从数据库中获取所有唯一联系人号码及其计数的工作,并且我还制作了一个ContentObserver,用于侦听电话簿相关的更新。但现在我想要最后插入的联系人号码。我把我所有的代码都放在这里 这是我获取所有联系人的代码:- Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, n

如何从android电话簿中获取最后插入的联系人号码。我已经完成了从数据库中获取所有唯一联系人号码及其计数的工作,并且我还制作了一个ContentObserver,用于侦听电话簿相关的更新。但现在我想要最后插入的联系人号码。我把我所有的代码都放在这里

这是我获取所有联系人的代码:-

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没有提供这样做的方法。与我交谈过的大多数想这样做的人最后不得不再次扫描所有联系人,并找出他们自己与上次扫描所有联系人时的不同之处。是的,我按照您所说的方式进行了操作,并添加了一些逻辑,从而能够得到解决方案。