Прежде всего, каждый RawContact
в Contacts
DB был синхронизирован с определенным приложением, поэтому, если это еще не так, я бы посоветовал вам вставить свое приложение RawContacts
, а не mangle с RawContacts
, существующим на устройстве, так как они могут быть удалены, отредактированы, сброшены управляющим приложением в любое время.
Теперь, чтобы отобразить на собственное приложение контактов, вам необходимо объявить свои контакты настраиваемыми mimetype
и связанными полями, вы делаете это с помощью специального файла xml с именем contacts.xml
, который вы объявляете в своем манифесте, который сопоставляет разные DataKinds
столбцам данных, таким как DATA1, DATA2, et c.
Затем вам нужно иметь действие, чтобы поймать намерение, которое будет запущено, когда пользователь щелкнет вашу настраиваемую строку. Вы также объявляете намерение в файле контактов. xml, а затем вам нужно установить аналогичный intent-filter
в блоке манифеста вашей активности, чтобы Android знал, какое действие запускать.
Вот официальный документация: https://developer.android.com/guide/topics/providers/contacts-provider.html#CustomData и здесь: https://developer.android.com/guide/topics/providers/contacts-provider.html#SocialStreamDataKind
Вот руководство: https://medium.com/@stephen.cty / android -account-syn c -adapter-and-contacts-contract-database-983281be4847
Опять же, попробуйте убедиться, что значение myRawContactId
в этом руководстве указывает на RawContact, созданный вашим приложением, что предотвратит будущее ошибки, связанные с вмешательством Google в ваши пользовательские строки данных