2011-04-05 2 views
2

J'utilise le sélecteur de contacts pour obtenir le nom d'un contact spécifique. Pour Eclair et plus tard, je l'utilise:BadParcelableException: ClassNotFoundException lors de l'obtention du nom du contact sélectionné

startActivityForResult(new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI), CONTACT_PICKER_RESULT); 

et onActivityResult() je fais juste:

final String contactName = data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME); 

Cela fonctionne bien sauf Motoblur, où je reçois cette exception:

android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.motorola.blur.provider.contacts.IdentityModel 
    at android.os.Parcel.readParcelable(Parcel.java:1883) 
    at android.os.Parcel.readParcelableArray(Parcel.java:1922) 
    at android.os.Parcel.readValue(Parcel.java:1825) 
    at android.os.Parcel.readMapInternal(Parcel.java:2008) 
    at android.os.Bundle.unparcel(Bundle.java:208) 
    at android.os.Bundle.getString(Bundle.java:1034) 
    at android.content.Intent.getStringExtra(Intent.java:3399) 

est-il une autre façon d'obtenir le nom qui fonctionnerait aussi sur Motoblur? Y a-t-il une solution de contournement pour Motoblur?

Merci à l'avance,
Jonas

Répondre

2

En utilisant ContentResolver fonctionne très bien. Il semble que Intent.EXTRA_SHORTCUT_NAME ne fonctionne pas de manière fiable sur tous les téléphones (j'ai également entendu des rapports à ce sujet ne fonctionne pas entièrement sur HTC).

Questions connexes