如何使用cardme将vcard 3.0转换为2.1

发布于 2024-12-08 02:35:42 字数 952 浏览 1 评论 0原文

我们的应用程序具有移动客户端和服务器应用程序。移动客户端安装在Symbian OS 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 中写入。旧版本不支持在 vCard 中添加照片。

欢迎任何帮助或建议

谢谢

We have application which has mobile client and server application. Mobile clients gets installed in Symbian OS s60 which only supports vCard 2.1 to sending and receiving.
In the server side application I am using cardme 0.2.5. which is receiving vCard version 2.1 from the mobile phone and it is getting saved properly in the database as version 2.1.

The problem comes when I edit any contact in the server application the new vCard gets saved in version 3.0 and when server syncs with the mobile device, mobile device is not able to parse vCard 3.0 properly because it supports only 2.1

While doing research I found that the the VCardWriter cannot write in vCard version 2.1 back

       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;
      }
     }

Is there anyway we can write the object back to vCard version 2.1

I have tried using other jar versions but found that from cardme 2.0 onwards it only writes in vcard 3.0. Older versions doesn't support photo to be added in the vCard.

Any help or suggestion would be welcomed

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落叶缤纷 2024-12-15 02:35:42

如果移动设备仅在解析照片标签时出现问题,您可以将cardme的兼容模式设置为MS_OUTLOOK。这将导致cardme以v2.1格式写入PHOTO、LOGO、SOUND和KEY。

如果以上方法不适合您,您可以下载支持 VCard v2.1(包括照片)的 cardme 0.1.4 版本,您可以在此处下载 cardme 0.1.4

由于旧版本的cardme使用不同的包名称,您可以使用 0.1.4 版本的库重新构建 vcard,这是程序的另一部分。

if the mobile device only has problems parsing the photo tag you could set the compatibility mode of cardme to MS_OUTLOOK. This will cause cardme to write PHOTO,LOGO,SOUND and KEY in v2.1 format.

If the above doesn't work for you, you could download version 0.1.4 of cardme which supports VCard v2.1 (including PHOTO) you can download it here cardme 0.1.4

Since the old version of cardme uses a different package name, you can re-build the vcard using the 0.1.4 version of library is another part of your program.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文