SDB:SyncML OBEX 客户端
简介
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 | 尚未获得日历或待办事项列表的同步。我收到错误:收到 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 | 两边工作正常,但我需要禁用笔记同步 | ||||
| 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 规范