SDB:SyncML OBEX 客户端

跳转到:导航搜索
Icon-cleanup.png
这篇文章需要关注,因为它不符合我们的维基指南
如果您想贡献,请阅读此维基的规则,如果您有任何问题,请随时联系维基团队,我们非常乐意帮助您!:-)

简介

SyncML OBEX 客户端插件允许许多现代手机进行本地同步。同步通过蓝牙和 USB 支持。在 openSUSE 10.2 Beta 2 中,桌面用户默认情况下没有权限访问 USB 原始接口。希望这种情况会改变(在 11.0 RC1 中仍然没有改变),当我们收到来自社区的大量手机 USB 产品和供应商 ID 时。然后,我们可以在下一个 openSUSE Beta 中提供一个 hal-resmgr fdi 文件,该文件授予对手机 USB RAW 接口的访问权限。这对于掌上设备已经完成。

如果您尚未成功,也请将您的手机的详细信息添加到“测试设备”部分。

已测试设备

Nokia

型号 固件 联系人数据库 事件数据库 笔记数据库 待办事项数据库 wbxml 标识符 SyncML 蓝牙 USB USB 产品 ID USB 供应商 ID libsyncml 测试者 评论
2630 联系人 日历 笔记 待办事项 PC 套件 1.1 | - - 0.4.4.2
6300 v5.0 联系人 日历 笔记 待办事项 PC 套件 1.1 | - - 0.4.4 同步需要“干净屏幕”
6230 v5.50 联系人 日历 笔记 PC 套件 1.1 | 0x421 0x40f 0.4.2 同步需要“干净屏幕”
6230i v3.70 联系人 日历 笔记 PC 套件 1.1 0x421 0x428 0.4.2 同步需要“干净屏幕”
6650 v3.31.TMD.01 联系人 日历 笔记 任务 PC 套件 1.1 0x421 0x0E2 0.4.6-3build1
6680 v4.05.07 联系人 日历 笔记 PC 套件 1.1 - - 0.4.2-0.4.4 使用 msynctool 工作正常。此处描述的 Syncml-obex-client 根本不起作用。
9300i v6.27(00) 联系人 日历 RcntTask PC 套件 1.1 - - 0.4.4 配置文件在此处:http://www.opensync.org/wiki/Model_N9300i
9500 v5.22(1) 联系人 日历 笔记 PC 套件 1.1 - - 0.4.2 数据库名称不同,“msynctool --sync nokia”有效 / multisync-gui 在 evo2-sync 上失败
E51 v100.34.20 联系人 日历 笔记 PC 套件 1.1 - - 0.4.6 opensync 中的错误导致在我也使用 Mac OS X 上的 iSync 时联系人重复。0.4.5 在日历同步方面不起作用。
E61i v3.0633.69.00 联系人 笔记 PC 套件 1.1 0x421 0x001 0.4.4 用户:peternixon 尚未获得日历或待办事项列表的同步。我收到错误:收到 DS 服务器在日历上的警报:类型:201,最后,下一个 20090825T212021Z

慢速同步 收到 ID 为 1 的新会话 报告完成的 DevInf 会话 1 刷新 收到我们对会话 1 的警报的回复 报告完成的会话 1 刷新 会话 1 已结束

E65 v2.0633.01.00 联系人 日历 笔记 PC 套件 1.1 - - 0.4.2-0.4.4 使用 msynctool 工作,但单向:E65->Suse。此处描述的 Syncml-obex-client 根本不起作用。
E65 联系人 日历 笔记 日历 PC 套件 1.1 0x0421 0x0508 0.4.2-0.4.4 使用 Evolution 2.x (evo2-sync) 同步 E65 (SyncML-OBEX-Client)。第一次同步工作正常 (E65->Evolution),后续同步在任何一方都没有更改的情况下报告了大量冲突。(对我来说无法使用)。
E65 v2.0633.65.01 联系人 日历 笔记 任务 PC 套件 1.1 - - 0.4.4 lijews 两边工作正常,但我需要禁用笔记同步
E90 联系人 日历 笔记 PC 套件 1.1 - - 0.4.4 kwbolte 配置文件在此处:http://www.opensync.org/wiki/Nokia_E90
N73 v3.0638.0.0.1 联系人 日历 笔记 PC 套件 1.1 - - 0.4.2 不需要“干净屏幕”,仅使用 kdepim-sync 测试
N95 v10.2.006 联系人 日历 笔记 PC 套件 1.0 0x421 0x4f0 0.4.4-99.1 使用命令行和 Kitchensync 测试,N95->KDEPIM


  • 同步需要“干净屏幕”
    • 这意味着当有其他应用程序正在运行时,手机将不会接受同步请求。即使之前的同步状态报告也会避免同步请求。
    • 简而言之:确保没有应用程序或对话框可见,并且“屏幕是干净的”。
    • 收到传输错误:请求不成功:67” - 当同步被拒绝时会出现

Sony Ericsson

  • 在索尼爱立信上,您可以使用以下命令询问固件版本:“> * < < * < *”, “<>”是左右摇杆
型号 固件 联系人数据库 事件数据库 笔记数据库 待办事项数据库 wbxml 标识符 SyncML 蓝牙 USB USB 产品 ID USB 供应商 ID libsyncml 测试者 评论
D750i R1N035 联系人 议程 笔记 任务 1.1 d016 0fce 0.4.2 使用 SL10.1、SL10.2 测试
K530i R8BB001 联系人 议程 笔记 任务 1.1 d079 0fce 0.4.4-42 openSUSE 10.3 GM
K750i 联系人 议程 笔记 任务 1.1 d016 0fce 0.4.2
K770i R8AB001 联系人 日历 笔记 任务 1.1 d0b7 0fce 0.4.4-42 openSUSE 10.3 GM
K800i R1KG001 联系人 议程 笔记 任务 1.1 0.4.4-42 openSUSE 10.3 GM
V630i R1ED001 联系人 议程 笔记 任务 1.1 d043 0fce 0.4.4_SVN237 openSUSE 10.3-alpha2
W800i R1AA008 联系人 日历
议程
笔记 任务 1.1 d028 0fce 0.4.4-98 openSUSE 11.0 RC1
W810i O2 固件 联系人 议程 笔记 任务 0.4.4-42 openSUSE 10.3 GM
W902 R3EA036 联系人 议程 笔记 任务 1.1 d0f5 0fce 0.4.4-29 openSUSE 11.1

测试用例基础

对于以下测试用例,您将需要命令行程序“syncml-obex-client”,该程序由 libsyncml 包提供。该应用程序仅用于测试,并且相当复杂。一些基础知识

--sync <type> <database>
--slow-sync <type> <database>

--slow-sync 参数触发所谓的“慢速同步”,它请求请求数据库中的所有条目。--sync 仅请求上次同步以来的新条目或修改的条目(对测试不太有用)。

  • 类型:代表 mimetype -
    • text/x-vcard - 用于联系人
    • text/x-vcalendar - 用于事件
    • text/plain - 用于笔记
  • 数据库:是设备中存储条目的数据库的名称。已知的数据库名称
    • 联系人
    • 日历
    • 备注
    • 任务
    • 议程(在某些索尼爱立信上,W800i 的日历和议程都有效)


--identifier <name>

此参数设置“同步软件”标识符,该标识符将用于标识手机。大多数手机忽略此标识符值。到目前为止,我们只知道诺基亚手机,当标识符错误时会拒绝同步。诺基亚手机的标识符是

  • “PC 套件”
--wbxml

此开关切换到 WAP 二进制 XML 而不是纯 XML 进行同步。到目前为止,我们知道大多数手机都使用它,因此默认情况下我们启用它。如果在使用初始同步测试用例时遇到问题,请删除此参数。

-u <id>

此参数用于 USB 连接。仅 -u 不带 ID,将仅列出所有可用接口。例如,诺基亚 E61i 给出以下输出(接口 0 是要使用的正确接口)。

syncml-obex-client -u
Found 3 USB OBEX interfaces
Interface 0:
       Manufacturer: Nokia
       Product: Nokia E61i
       Interface description: SYNCML-SYNC
Interface 1:
       Manufacturer: Nokia
       Product: Nokia E61i
       Interface description: PC Suite Services
Interface 2:
       Manufacturer: Nokia
       Product: Nokia E61i
       Interface description: SYNCML-DM

目前用户默认情况下无法访问 USB 原始设备。请将您的手机的 USB 产品和供应商 ID 添加到“已测试设备”部分,以便我们可以在下一个版本中提供对 USB 原始设备的访问权限。

-b <addr> <channel>

此参数用于蓝牙连接。对于 <addr>,填写您的手机的 MAC 地址,对于 <channel>,填写 SyncML 服务的编号。

hcitool scan

扫描蓝牙设备并列出设备名称和 MAC 地址。(请确保您的手机已启用蓝牙并且可被发现)

sdptool browse <mac>

显示设备的蓝牙服务及其通道号。查找“SyncML”或“SyncML 客户端”。

测试用例

提示:导出 $MAC、$CHANNEL 和 $USBINT,并使用正确的值,然后您可以复制并粘贴测试用例

如果您没有诺基亚手机,只需复制到 --identifier "PC Suite" 或仅复制到 --wbxml,如果您的设备不使用 wbxml。

  • 请记住,数据库名称区分大小写。如果您收到“收到传输错误:禁止 (0x43)”,请确保正确输入数据库名称,包括大小写。

例如,我的 N70 数据库名称以大写字母开头。因此我必须使用 Contacts 而不是 contacts。

初始 SyncML 连接 - 只读

联系人

# Bluetooth
syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcard contacts --wbxml --identifier "PC Suite"
# USB
syncml-obex-client -u $USBINT --slow-sync text/x-vcard contacts --wbxml --identifier "PC Suite"


活动

syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcalendar calendar --wbxml --identifier "PC Suite"
syncml-obex-client -u $USBINT --slow-sync text/x-vcalendar calendar --wbxml --identifier "PC Suite"

(在某些索尼爱立信手机上,您必须使用“议程”而不是“日历”)


说明

syncml-obex-client -b $MAC $CHANNEL --slow-sync text/plain notes --wbxml --identifier "PC Suite"
syncml-obex-client -u $USBINT --slow-sync text/plain notes --wbxml --identifier "PC Suite"


待办事项:(仅适用于将待办事项/任务未存储在事件数据库中的设备)

syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcalendar tasks --wbxml --identifier "PC Suite"
syncml-obex-client -u $USBINT --slow-sync text/x-vcalendar tasks --wbxml --identifier "PC Suite"


将多个条目同步到设备

syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcard contacts --slow-sync text/x-vcalendar calendar --wbxml --identifier "PC Suite"
syncml-obex-client -u $USBINT --slow-sync text/x-vcard contacts --slow-sync text/x-vcalendar calendar --wbxml --identifier "PC Suite"

将单个条目同步到设备

syncml-obex-client -b $MAC $CHANNEL --sync text/x-vcalendar calendar --add text/x-vcalendar /tmp/test.vcal --wbxml --identifier "PC Suite"
syncml-obex-client -u $USBINT --sync text/x-vcalendar calendar --add text/x-vcalendar /tmp/test.vcal --wbxml --identifier "PC Suite"

将您的 SyncML-OBEX 手机用作用户

要将您的手机用作普通用户,必须正确设置权限。这是通过 resmgr、hal 等完成的。

创建文件 /etc/hal/fdi/policy/20user/cell.fdi

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.category" string="usbraw">
      <match key="@info.parent:usb_device.vendor_id" int="<toInsert>">
        <match key="@info.parent:usb_device.product_id" int="<toInsert>">
          <merge key="resmgr.class" type="string">cell</merge>
        </match>
      </match>
    </match>
  </device>
</deviceinfo>

并创建类 /etc/resmgr.conf.d/50-cell.conf

class cell
class desktop includes cell

usb_device.vendor_id 和 usb_device.product_id 必须使用 lsusb 中看到的正确 ID 进行调整。

替代文件 /etc/hal/fdi/policy/20user/cell.fdi

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.subsystem" string="usb_device">
      <match key="usb_device.vendor_id" int="<toInsert>">
        <match key="usb_device.product_id" int="<toInsert>">
          <merge key="resmgr.class" type="string">cell</merge>
        </match>
      </match>
    </match>
  </device>
</deviceinfo>

更多信息请参见 Bug 258986

链接

libsyncml 项目

开放移动联盟 (OMA) - SyncML 规范