我有一个用于使用 ContactList.commit() 编写联系人的应用程序。我在两部不同的手机上使用这个应用程序,一部是诺基亚 X2-02,另一部是三星 DUOS E2252。当我在三星 DUOS 中使用此代码时,它进入if
语句内部,这意味着它支持 and 的这些字段Contact.TEL
,Contact.ATTR_MOBILE
并且可能还执行c.addString(...)
语句。但是当提交使用c.commit()
它时会抛出PIMException
并忽略整个联系人,而在诺基亚手机中使用相同的应用程序时它可以正常工作。不知道三星不支持ATTR_MOBILE
字段,它应该简单地忽略该字段,而不是抛出异常并忽略整个联系人。我想要做的只是忽略该特定字段,如果它不添加或其他任何内容,而不是忽略联系人。我这部分的代码如下
if (clist.isSupportedField(Contact.TEL)) {
if ((clist.isSupportedAttribute(Contact.TEL, Contact.ATTR_HOME)) && (contact.getPhoneHome() != null)) {
c.addString(Contact.TEL, Contact.ATTR_HOME, contact.getPhoneHome());
}
if ((clist.isSupportedAttribute(Contact.TEL, Contact.ATTR_PAGER)) && (contact.getPager() != null)) {
c.addString(Contact.TEL, Contact.ATTR_PAGER, contact.getPager());
}
if ((clist.isSupportedAttribute(Contact.TEL, Contact.ATTR_MOBILE)) && (contact.getPhoneMobile() != null)) {
c.addString(Contact.TEL, Contact.ATTR_MOBILE, contact.getPhoneMobile());
}
} c.commit();