0

我有一个用于使用 ContactList.commit() 编写联系人的应用程序。我在两部不同的手机上使用这个应用程序,一部是诺基亚 X2-02,另一部是三星 DUOS E2252。当我在三星 DUOS 中使用此代码时,它进入if语句内部,这意味着它支持 and 的这些字段Contact.TELContact.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();
4

0 回答 0