我使用“联系人”选择器获取特定联系人的姓名。对于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有解决方法吗?
提前致谢,
纳斯
答案 0 :(得分:2)
使用ContentResolver
工作正常。似乎Intent.EXTRA_SHORTCUT_NAME
在所有手机上都无法可靠地工作(我也听说有关它不能完全在HTC上运行的报道)。