2

我使用联系人选择器来获取特定联系人的姓名。对于 Eclair 及以后我使用:

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 有解决方法吗?

在此先感谢,
乔纳斯

4

1 回答 1

2

使用ContentResolver效果很好。似乎Intent.EXTRA_SHORTCUT_NAME不能在所有手机上可靠地工作(我也听说过关于它不能在 HTC 上完全工作的报道)。

于 2011-04-08T11:35:10.067 回答