Question

i a écrit un SyncAdapter personnalisé, qui ajoute également un champ personnalisé aux rawcontacts. Exactement comment cela se fait dans le SampleSyncAdapter ou cet exemple avec le last.fm-App . Et il fonctionne bien sur l'émulateur.

Le fichier xml, qui déclare mon champ personnalisé:

<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>

Le code pour ajouter le champ personnalisé aux données table du contactscontract fournisseur:

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"));

Mais quand je les lance sur mon HTC Desire avec HTC Sense installé, je ne vois plus ce champ personnalisé?!? Quelqu'un at-il connu le même problème?

Toute velléité de mon champ personnalisé visible est très apprécié!

Vive Ali3n

Était-ce utile?

La solution 2

Malheureusement, je ne l'ai pas trouvé une vraie solution pour cela. Mais deux choses réduisent le problème:

Ce problème ne semble que sur mon ancien HTC Desire. Sur mes sœurs HTC Sensation les montre-champ personnalisé comme prévu (belle de HTC dans échouent la première oO try)

Mieux encore est que l'intention qui serait lancé par ce champ personnalisé apparaît également dans le QuickContactBadge, qui est utilisé par le HTC natif Contacts App-même sur mon HTC Sense Desires. Par conséquent, l'utilisateur peut appeler mon activité via les versions QuickContactBadge sur les anciens sens et dans les nouvelles versions, il a aussi la possibilité d'utiliser le champ personnalisé.

Autres conseils

Les téléspectateurs de contact par défaut ne montrent pas de champs personnalisés.

Il y a des applications 3ème partie qui ne montrent des champs personnalisés, un libre (mais ad supported) est

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top