Я написал собственный syncadapter, который также добавил настраиваемое поле в rawcontacts.Как это сделать в SampleSyncAdapter или в в этом примере с помощью last.fm-App.И он отлично работает на эмуляторе.
XML-файл, который объявляет мое настраиваемое поле:
<ContactsSource xmlns:android="http://schemas.android.com/apk/res/android">
<ContactsDataKind
android:mimeType="vnd.com.google.cursor.item/vnd.alien.mimetype"
android:icon="@drawable/icon"
android:summaryColumn="data2"
android:detailColumn="data3"
android:detailSocialSummary="true" />
</ContactsSource>
Код для добавления настраиваемого поля в таблицу данных contactcontract-provider:
mContentUri = Data.CONTENT_URI.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build();
Builder mID = ContentProviderOperation.newInsert(mContentUri)
.withValue(Data.RAW_CONTACT_ID, getRawContactId())
.withValue(Data.MIMETYPE, "vnd.com.google.cursor.item/vnd.alien.mimetype")
.withValue(Data.DATA1, mContactInformations.get("mID"))
.withValue(Data.DATA2, mContext.getString(R.string.profile_text))
.withValue(Data.DATA3, mContext.getString(R.string.profile_id)+" "+mContactInformations.get("mID"));
Но когда я запускаю их на своем HTC Desire с установленным HTC Sense, я больше не вижу это настраиваемое поле?!?Кто-нибудь сталкивался с такой же проблемой?
Любая подсказка, чтобы сделать видимым мое настраиваемое поле, высоко ценится!
Приветствия Ali3n