(七)  IrMC简介<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

要实现通讯薄、日历、便签的同步,需要用到IrDA协议里面的IrMC部分。

IrMC全称为Ir Mobile Communications。它定义了利用IR无线传输的设备之间通讯的规则。IrMC协议文档详细叙述了IrMC的方方面面,可以在我的主页(http://dream-world.nease.net)下载到PDF版本。

下面主要讲述我在开发当中所用到的部分以及实现方法。更为详细的资料请参考IrMC协议。

Phonebook

在手机软件桌面端通讯薄的管理是整个软件的必备功能之一,利用其信息可以方便的和Outlook等软件实现同步,实现更强大的功能。

通讯薄的管理分为读取、删除、增添、修改。通过这几个功能的组合可以实现更为强大的同步功能。下面分条概述。

l         读取

n         读取所有的Entry
使用OBEX的GET命令取得\telecom\pb.vcf文件。
得到的的文件是一个vCard文件,里面包含了所有的通讯薄。其格式为vCard格式。关于vCard的简介及编码器解码器见后。下面给出一个范例:
BEGIN:VCARD
VERSION:2.1
X-IRMC-LUID:1017646
X-ESI-CATEGORIES;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E5=AE=B6=E4=BA=BA
N:test
ADR:;;Street;city;;610000;country
ORG:company
TEL;HOME:123456
TEL;WORK:123456
TEL;CELL:123456
TEL;FAX:123456
TEL;FAX;HOME:123456
EMAIL;INTERNET:a@a.ao
EMAIL;HOME;INTERNET:b@g
URL:http
BDAY:<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1985-04-23
END:VCARD
也可以通过X-IRMC-LUID所给的LUID号码直接取得相应的vCard。

1.         读取指定LUID的Entry
使用OBEX的GET命令取得\telecom\pb\luid\xxxx.vcf,其中xxxx代表了LUID号码。
得到的依然是一个vCard文件,只不过只包含特定LUID号码的vCard信息。可以简单的通过Outlook查看vCard所包含的信息。

l         删除
欲删除一个Entry

1.         连接到IrMC_Sync_Service(发送0x80, 0x0, 0x13, 0x10, 0x0, 0x40, 0x6, 0x46, 0x0, 0xC, 0x49, 0x52, 0x4D, 0x43, 0x2D, 0x53, 0x59, 0x4E, 0x43)使手机处于同步状态。

2.         得到ChangeCount

ChangeCount是手机里面储存修改次数的一个数值,主要用于同步。具体相关资料请参考IrMC协议。

3.         构建数据包。
Opcode:PUT
NameHeader:xxxx.vcf(xxxx为欲删除的entry的LUID)
AppParam:0x11,ChangCount字符串形式长度(Integer),ChangeCount的ANSI形式

4.         使用OBEX的PUT命令,传输一个xxxx.vcf(xxxx指LUID)空文件到\telecom\pb\luid覆盖即可。

5.         发送0x81, 0x0, 0x3断开IrMC_Sync_service

l         添加
欲添加一个文件:

1.         连接到IrMC_Sync_Service

2.         得到ChangeCount

3.         构建数据包
Opcode:PUT
NameHeader:.vcf
AppHeader:0x11,ChangeCount字符串长度(Interger),ChangCount的ANSI形式
Body或者End-of-Body Header:vcf文件内容

4.         OBEX的PUT命令上传到\telecom\pb\.vcf文件即可。
注意:文件名取名为“.vcf”。

5.         发送0x81, 0x0, 0x3断开IrMC_Sync_service

l         修改
修改过程与添加过程相似,只是将文件名改为欲修改的vCard的LUID.vcf就行了。

 

Notes

便签是大多数手机都提供的功能,能够方便的记录简短的信息。在我的M55手机上能够储存150Byte的信息,也就是150个英文或者75个汉字。软件通过管理便签可以与Outlook等软件同步,实现更高级的功能。

管理Notes的方法和Phonebook类似。得到全部Notes的vNote只需要获取\telecom\nt.vnt即可。删除、添加、修改只需要把\telecom\pb\luid改为\telecom\nt\luid即可。在此不再赘述。

       Calendar
      
日历功能提供了事件提醒功能,分为重要记事(vEvent)和任务(vTodo)。通过管理日历,同样可以实现和Outlook同步,实现电脑和手机的同步。

管理Calendar的方法和Phonebook类似。得到全部vCalendar只需要获取\telecom\cal.vcs。删除、添加、修改只需要把\telecom\pb\luid改为\telecom\cal\luid即可。在此不再赘述。

但值得注意的是vCalendar的结构

BEGIN:VCALENDAR

VERSION:1.0

BEGIN:VEVENT

….

END:VEVENT

BEGIN:VTODO

END:VTODO

END:VCALENDAR

完整的vCalender包含了至少一个vEvent或者一个vTodo,因此在添加、修改vEvent、vTodo时要将其补充为一个完整的vCalender结构,否则服务端会拒绝操作。

遇到的问题:

在实际操作中,遇到问题最多的地方在Phonebook部分。我的手机第一次同步的时候经常出现数据库被锁的情况,用SiMoCo读取也是一样,说明是手机拒绝写操作。这时候关闭手机再重新启动就好了。至于原因,我还没有搞清楚,希望能有高人指点。

使用.net开发手机管理软件 (七) IrMC简介相关推荐

  1. 使用.net开发手机管理软件(一至三)

    (一)  简介<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ...

  2. 使用.net开发手机管理软件 (五) OBEX介绍

    (五)  OBEX介绍<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /& ...

  3. 仿OpenStack开发云计算管理软件”--熟悉开发环境

    他山之石,可以成云 --咆哮金刚猪的云烹饪之路 第一周(7月13日-7月19日):熟悉开发环境 实验内容: 云平台功能模块分析 云平台架构设计 Flask开发环境搭建 Flask可运行的代码框架 实验 ...

  4. Python开发多媒体管理软件实现方法

    软件开发环境 python 3.7.3 pycharm Community 2020 PYQT5 教师端控制界面 下拉列表显示全部已经连接的客户端ip地址 对选中的设备进行查看设备信息,重启电脑,关闭 ...

  5. 如何开发手机APP软件?

    一门APP开发平台能做APP嘛 1.可靠的.专业的在线app开发平台可以满足中小企业的基本功能,而且制作出来的app非常专业,也可以拿来进行使用,如应用之星,就是采用控件式操作方式,菜鸟也可以制作出来 ...

  6. 安卓手机管理软件_vaa云录音app下载-vaa云录音手机版下载v1.1.9 安卓版

    vaa云录音app是一款手机录音软件,软件功能全面,使用方便,在这里为用户提供最方便的录音服务,不管是什么方面的录音,在这里都可以通过软件完成,为你带来最方面实用的录音服务,感兴趣的朋友快来下载看看吧 ...

  7. 安卓手机管理软件_VAA云录音系统_VAA云录音app下载手机版 v1.1.9 最新版

    VAA云录音系统是一款专为安卓用户开发的智能录音软件,用户可以将通话录音上传到自己的私有云服务器,而且录音的文件还可以下载.在线播放.统计报表.存储备份等操作. 基本简介 软件是云录音管理系统基于安卓 ...

  8. 安卓手机管理软件_日程管理软件哪个好?

    无论是工作还是生活,都需要好好地进行日程安排规划,将自己的日程安排计划管理得井井有条,滋滋有味.尤其是临近过年,每天要忙碌的事情很多,如果有一款免费且好用的日程管理软件,来辅助我们的日常生活和工作,那 ...

  9. 安卓手机管理软件_留言帮忙找:手机清理软件合集 Android

    几款小巧的手机清理软件[滑稽][玫瑰] 本次带来5个小巧实用的手机清理软件 你是否还在为清理垃圾而烦恼?经常为手机清理垃圾可以延长手机的使用时间哦! ①清理大师②power clear③强力清理④全能 ...

最新文章

  1. Novas Verdi、Debussy ,Synopsys VCS,Candence NC-Verilog,Mentor Graphics工具介绍
  2. [转]iis部署php项目
  3. html遇到英文单词整体换行,CSS单词换行and断词,你真的完全了解吗_html/css_WEB-ITnose...
  4. GoldenGate SQL error 1403 mapping 错误解决方案
  5. 数据结构与算法专题——第九题 外排序
  6. linux bash命令_Linux命令-您应该知道的基本Bash命令行技巧
  7. web前端入门到实战:CSS3两大实用属性,以及网页制作技巧
  8. 在Magento首页显示新产品怎么设置
  9. 「解决方案」用户变电站配电监控解决方案
  10. 初步认识马尔可夫链与马尔可夫链的简单应用
  11. 运放输入偏置电流方向_运算放大器的输入偏置电流
  12. 720yun全景图+vue
  13. GAN 生成对抗网络 10-6 Tips for improving GAN
  14. 【暂时性死区(TDZ)】
  15. 数字游戏 -- 寻找缺失的数字
  16. 【Pytorch神经网络理论篇】 34 样本均衡+分类模型常见损失函数
  17. Python+PIL 轻松制作九宫格图片
  18. zygote启动过程
  19. 关于BERT预训练模型,你想知道的都在这~
  20. 滴滴oracle,滴滴-数据分析

热门文章

  1. linux-多任务同步和互斥
  2. flask_sqlalchemy 多对多重复插入解决办法
  3. 【多标签文本分类】HFT-CNN: Learning Hierarchical Category Structure for Multi-label Short Text Categorization
  4. 【多标签文本分类】Initializing neural networks for hierarchical multi-label text classification
  5. 人群密度估计--Generating High-Quality Crowd Density Maps using Contextual Pyramid CNNs
  6. Java计算数学表达式(字符串形式)
  7. linux自动备份db2数据库备份,db2 自动备份(linux 、windows)总结
  8. 物流信息管理系统MySQL设计,物流管理系统的SQL数据库设计(含代码)
  9. HTML中收藏和删除的小图案,YS - 《网页制作》复习题(多选题)
  10. java 泛型解耦,T-MVP:泛型深度解耦下的MVP大瘦身