2011-01-19 1 views
7

Мне было интересно, можно ли расширить базу данных Android-контактов?Могу ли я продлить базу данных Androids Contacts?

Отсюда - http://d.android.com/reference/android/provider/ContactsContract.html

Он говорит:

ContactsContract определяет расширяемую базу данных контакта, связанных с информация

Extensible предложил бы мне, что я могу добавить более данные в приложение контактов вне нормальных значений, таких как имя, номер, адрес электронной почты, номер рабочего места, домашний номер и т. д.

Однако примеры этой страницы - http://d.android.com/reference/android/provider/ContactsContract.RawContacts.html показывают только, как вставлять стандартные значения, такие как имя, а не как добавить новое поле к контакту.

Кроме того, поиск в Интернете не содержит большой информации о расширении данных контактов.

Так что мне было интересно, возможно ли это, или растяжимое относится к какой-либо другой части контактов?

Например, я хотел бы добавить дополнительное поле для контактов, которые имеют особые привилегии в моем приложении, поэтому, когда пользователь просматривает контакты, он или она знает, к каким пользователям они могут использовать мое приложение.

Возможно ли это?

ответ

2

Вы можете сохранить пользовательские данные в базе данных контактов. Однако «когда пользователь смотрит на контакты, с которыми он или она знает, к каким пользователям они могут использовать свое приложение», может оказаться невозможным, если вы думаете, что пользователи смогут видеть пользовательские данные, которые вы вставили, используя встроенные контакты Android заявление. Вам нужно будет отобразить пользовательские данные в своем приложении.

В javadocs для класса ContactsContract.Data следует указать объяснение, а также Contacts article.

Чтобы использовать это, вам необходимо получить идентификатор сырого контакта, запросив 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() { } 
} 
+0

Любая идея, где контакты статья пошел? Ссылка мертва (: –

+0

Я обновил ссылку, это должно помочь: http://developer.android.com/guide/topics/providers/contacts-provider.html – satur9nine

+0

Спасибо. Это исследование странной проблемы I имеют в базе данных контактов: http://wiert.me/2012/07/24/small-follow-up-on-android-help-needed-app-that-cleans-up-the-contacts-mess-that- the-linkedin-app-left-behind/(580 мегабайт и автоматически растет без каких-либо активных приложений). –

 Смежные вопросы

  • Нет связанных вопросов^_^