BadParcelableException: ClassNotFoundException при получении имени выбранного контакта - PullRequest
2 голосов
/ 05 апреля 2011

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

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

и в onActivityResult() я просто делаю:

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

Это отлично работает, за исключением Motoblur, где я получаю это исключение:

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)

Есть ли другой способ получить имя, которое будет работать и на Motoblur? Есть ли обходной путь для Motoblur?

Заранее спасибо,
Jonas

1 Ответ

2 голосов
/ 08 апреля 2011

Использование ContentResolver работает нормально.Похоже, что Intent.EXTRA_SHORTCUT_NAME не работает надежно на всех телефонах (я также слышал сообщения о том, что он не работает полностью в HTC).

...