Могу ли я расширить базу данных контактов Androids?
Мне было интересно, возможно ли расширить базу данных контактов Android?
Отсюда - http://d.android.com/reference/android/provider/ContactsContract.html
Это говорит:
ContactsContract определяет расширяемую базу данных контактной информации
Расширяемый предложил бы мне, чтобы я мог добавить больше данных в приложение контактов вне обычных значений, таких как Имя, номер, адрес электронной почты, рабочий номер, домашний номер и т. Д.
Однако примеры этой страницы - http://d.android.com/reference/android/provider/ContactsContract.RawContacts.html показывают только, как вставить стандартные значения, такие как имя, а не как добавить новое поле в контакт.
Кроме того, поиск в Интернете не дает много информации о расширении контактных данных.
Поэтому мне было интересно, возможно ли это вообще или расширяемый относится к какой-то другой части контактов?
Например, я хотел бы добавить дополнительное поле для контактов, которые имеют особые привилегии в моем приложении, чтобы, когда пользователь смотрит на контакты, он или она знает, с какими пользователями они могут использовать мое приложение.
Это возможно?
1 ответ
Вы можете хранить пользовательские данные в базе данных контактов. Однако "когда пользователь смотрит на контакты, которые он или она знает, с какими пользователями они могут использовать мое приложение", это может быть невозможно, если вы думаете, что пользователи смогут видеть пользовательские данные, которые вы вставили, используя встроенные контакты Android. приложение. Вам придется отображать пользовательские данные в вашем собственном приложении.
Javadocs для класса ContactsContract.Data должны предоставить объяснение, а также статью Contacts.
Чтобы использовать это, вам нужно получить необработанный идентификатор контакта, запросив RawContacts.
Вот пример кода, который может помочь вам начать...
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() { }
}