У нас есть приложение, которое имеет мобильное клиентское и серверное приложение. Мобильные клиенты устанавливаются в ОС Symbian s60, которая поддерживает только отправку и получение vCard 2.1.
В приложении на стороне сервера я использую cardme 0.2.5. который получает vCard версии 2.1 с мобильного телефона и правильно сохраняется в базе данных как версия 2.1.
Проблема возникает, когда я редактирую любой контакт в приложении сервера, новая vCard сохраняется в версии 3.0, и когда сервер синхронизируется с мобильным устройством, мобильное устройство не может правильно проанализировать vCard 3.0, поскольку оно поддерживает только 2.1
Во время исследования я обнаружил, что VCardWriter не может записать в vCard версии 2.1 назад
public void setOutputVersion(VCardVersion outputVersion) throws VCardException {
if(outputVersion == null) {
this.outputVersion = VCardVersion.V3_0;
}
else {
if(outputVersion == VCardVersion.V2_1 || outputVersion == VCardVersion.V4_0) {
throw new VCardException("Version "+outputVersion+" not supported.");
this.outputVersion = outputVersion;
}
}
В любом случае мы можем записать объект обратно в vCard версии 2.1
Я пытался использовать другие версии jar, но обнаружил, что начиная с cardme 2.0 он пишет только в vcard 3.0. Старые версии не поддерживают добавление фотографий в визитную карточку.
Любая помощь или предложение будут приветствоваться
Спасибо