如何在Android 1.6中插入现有联系人的联系人信息?

如何在Android 1.6中插入现有联系人的联系人信息?,android,android-intent,contacts,Android,Android Intent,Contacts,我有联系人的姓名、电话号码和电子邮件信息。我只想为现有联系人插入额外的电子邮件和电话。我的问题是 如何查找联系人是否已存在 如何在附加地址或辅助地址选项中插入值 提前感谢。官方文件中有新的CONTANTS api 首先,使用您的条件查找原始联系人id,例如姓名: final String name = "reader"; // find "reader"'s contact String select = String.format("%s=? AND %s='%s'",

我有联系人的姓名、电话号码和电子邮件信息。我只想为现有联系人插入额外的电子邮件和电话。我的问题是

  • 如何查找联系人是否已存在
  • 如何在附加地址或辅助地址选项中插入值

  • 提前感谢。

    官方文件中有新的CONTANTS api

    首先,使用您的条件查找原始联系人id,例如姓名:

    final String name = "reader";
    // find "reader"'s contact 
    String select = String.format("%s=? AND %s='%s'", 
            Data.DISPLAY_NAME, Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
    String[] project = new String[] { Data.RAW_CONTACT_ID };
    Cursor c = getContentResolver().query(
            Data.CONTENT_URI, project, select, new String[] { name }, null);
    
    long rawContactId = -1;
    if(c.moveToFirst()){
        rawContactId = c.getLong(c.getColumnIndex(Data.RAW_CONTACT_ID));
    }
    c.close();
    
    其次,使用rawContactId向联系人添加条目:

    ContentValues values = new ContentValues();
    values.put(Data.RAW_CONTACT_ID, rawContactId);
    values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
    values.put(Phone.NUMBER, "1-800-GOOG-411");
    values.put(Phone.TYPE, Phone.TYPE_CUSTOM);
    values.put(Phone.LABEL, "free directory assistance");
    Uri dataUri = getContentResolver().insert(Data.CONTENT_URI, values);
    
    注意:不要忘记权限:

    <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
    
    
    
    我正在处理API级别4。但此api在api级别5上可用。还有其他方法吗?不需要检查是否存在联系人。游标是结果集。当结果中没有任何内容(光标计数为零)时不存在rawContactId是什么,如何获取该值?我保存的任何东西都会变成隐形联系人!如何将联系人添加为常用联系人?您应该修改指向目标设备为API级别4的问题描述。