ContactList.commit()を使用して連絡先を作成するために使用するアプリケーションがあります。私はこのアプリを2つの異なる携帯電話で使用しています。1つはNokiaX2-02で、もう1つはSamsungDUOSE2252です。このコードをSamsungDUOSで使用すると、if
ステートメントの内部に入ります。つまり、とのこれらのフィールドをサポートしContact.TEL
、Contact.ATTR_MOBILE
おそらくc.addString(...)
ステートメントも実行します。しかし、c.commit()
それを使用してコミットすると、連絡先全体がスローPIMException
されて無視されますが、Nokia電話で同じアプリケーションを使用すると正常に動作します。サムスンはサポートしていないのだろうか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();