Android 获取新添加联系人的id和显示名称:min API 7

Android 获取新添加联系人的id和显示名称:min API 7,android,contactscontract,Android,Contactscontract,在我的应用程序中,我正在实现添加联系人的功能。为此,我将代码用作 Intent addNewContact = new Intent(Intent.ACTION_INSERT); addNewContact.setType(ContactsContract.Contacts.CONTENT_TYPE); startActivityForResult(addNewContact, ADD_NEW_CONTACT); 在添加联系人(在活动结果上)之后,我想显示该联系人(仅,我不想迭代URI),但我

在我的应用程序中,我正在实现添加联系人的功能。为此,我将代码用作

Intent addNewContact = new Intent(Intent.ACTION_INSERT);
addNewContact.setType(ContactsContract.Contacts.CONTENT_TYPE);
startActivityForResult(addNewContact, ADD_NEW_CONTACT);
在添加联系人(在活动结果上)之后,我想显示该联系人(仅,我不想迭代URI),但我不知道如何仅显示该联系人。有办法吗

这是我的onActivityResult()

谢谢大家!

您必须读取activityresult()的
参数,在该参数中可以获取_id、displayName等

试试这个代码

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == ADD_NEW_CONTACT) {
             if(resultCode == -1) {
                 Uri contactData = data.getData();
                    Cursor cursor =  managedQuery(contactData, null, null, null, null);
                    if (cursor.moveToFirst()) {
                        long newId = cursor.getLong(cursor.getColumnIndexOrThrow(Contacts._ID));
                        String name = cursor.getString(cursor.getColumnIndexOrThrow(Contacts.DISPLAY_NAME));
                        Log.i("New contact Added", "ID of newly added contact is : " + newId + " Name is : " + name);
                    }
                Log.i("New contact Added : ", "Addedd new contact, Need to refress item list : DATA = " + data.toString());
            } else {
                Log.i("New contact Added : ", "Canceled to adding new contacts : Not need to update database");
            }
        }
    }

快乐的编码。

这正是我想要的问题,也是我需要的答案!谢谢嘿,我正试图做同样的事情,但是我的数据参数返回空值。我以与OP相同的方式调用插入联系人操作。有什么建议吗?您设备的操作系统版本是什么?并检查另一台设备。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == ADD_NEW_CONTACT) {
             if(resultCode == -1) {
                 Uri contactData = data.getData();
                    Cursor cursor =  managedQuery(contactData, null, null, null, null);
                    if (cursor.moveToFirst()) {
                        long newId = cursor.getLong(cursor.getColumnIndexOrThrow(Contacts._ID));
                        String name = cursor.getString(cursor.getColumnIndexOrThrow(Contacts.DISPLAY_NAME));
                        Log.i("New contact Added", "ID of newly added contact is : " + newId + " Name is : " + name);
                    }
                Log.i("New contact Added : ", "Addedd new contact, Need to refress item list : DATA = " + data.toString());
            } else {
                Log.i("New contact Added : ", "Canceled to adding new contacts : Not need to update database");
            }
        }
    }