您可以将自定义数据存储在联系人数据库中。但是,如果您认为用户将能够看到您在使用内置 Android 联系人时插入的自定义数据,那么“当用户查看联系人时,他或她就知道他们可以与哪些用户一起使用我的应用程序”,这可能是不可能的应用。您必须在自己的应用程序中显示自定义数据。
ContactsContract.Data类的 javadocs以及Contacts 文章应提供解释。
要使用它,您需要通过查询RawContacts来获取原始联系人 ID 。
这里有一些示例代码可以帮助您入门...
private void makePowerful(int rawContactId) {
ContentValues values = new ContentValues();
values.put(Privilege.RAW_CONTACT_ID, rawContactId);
values.put(Privilege.MIMETYPE, Privilege.CONTENT_ITEM_TYPE);
values.put(Privilege.PRIVILEGE_LEVEL, Privilege.TYPE_POWERFUL);
Uri uri = getContentResolver().insert(Data.CONTENT_URI, values);
}
public static final class Privilege implements ContactsContract.DataColumnsWithJoins, ContactsContract.CommonDataKinds.CommonColumns {
public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + "/my_app_privilege";
public static final int TYPE_POWERFUL = 1;
public static final int TYPE_WEAK = 2;
public static final String PRIVILEGE_LEVEL = DATA1;
private Privilege() { }
}