<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

统计

  • 随笔 - 44
  • 文章 - 0
  • 评论 - 86
  • 引用 - 0

常用链接

留言簿(6)

随笔分类(31)

随笔档案(44)

Mining

最新随笔

搜索

  •  

最新评论

阅读排行榜

评论排行榜

Python 操作黑莓(Blackberry)通信录
为了给黑莓导入iPhone 的通信录(contacts) , 只能利用黑莓的桌面管理器, 通过ipd 来维护.
但是发现 ABC Amber BlackBerry Converter 只能转换而无法修改, IPDManager 只能维护铃声和音乐啥的:(  只能自己写了个小程序

ipd 的格式可以在 http://na.blackberry.com/eng/developers/resources/journals/jan_2006/ipd_file_format.jsp 这里找到, 后面是代码, 只是生成datablock 列表, 还需要额外拷贝. 操作时最好只同步通信录.

下面是代码
#!/usr/local/bin/python2.5 
#
-*- coding: gbk -*-
from struct import * 

class BBFile:    
    
def __init__(self):
        
pass
        
    
def _contactblock(self, name, phone, uid):
        s 
= ''
        
# name 
        name = name.encode("utf-16be")
        s 
+= pack('<HB', len(name)+10xa0)
        s 
+= pack('<B'0x01+ name
        
# ff * 8 
        s += pack('<HB'80x54)
        s 
+= '\xff'*8
        
# uid 
        s += pack('<HBI'40x55, uid)
        
# phone
        phone = phone.encode("gbk")
        s 
+= pack('<HB', len(phone)+10x08)
        s 
+= phone + '\x00'
        
return s 
    
    
def save(self, filename, us, dbID=0, dbVer=0):
        hf 
= open(filename, "w+b")
        rs, uid 
= 1363797835 # 初始值
        for u in us:
            s 
= self._contactblock(u[0], u[1], uid)
            h 
= pack('<HIBHI', dbID, len(s)+7, dbVer, rs, uid)
            hf.write(h 
+ s)
            uid 
+= 8    # 
            rs  += 1    # 
        hf.close()
        
if __name__=='__main__':
    bb 
= BBFile()
    us 
= [ (u'宝宝1', u'13888888888'),(u'宝宝2', u'13888888888'),(u'宝宝3', u'13888888888'),  ]    
    bb.save(
"bb.ipd", us, 0, 0)
1. 保存成文件就可以直接运行了:)
2. 如果要真的生成可以导入bb 的文件的话, 要使用高级-> 只同步通讯录, 然后将这个文件生成的内容放在导出文件的头的后面, 还是有点麻烦.... 有空做个全自动的 呵呵   

因为只是测试, 所以很多硬编码了:)    

posted on 2008-10-03 22:18 泡泡牛 阅读(2946) 评论(6)  编辑 收藏 引用 所属分类: Python

评论

# re: Python 操作黑莓(Blackberry)通信录 2008-10-23 18:02 firefox

函数pack()在哪里定义的啊?
  回复  更多评论    

# re: Python 操作黑莓(Blackberry)通信录 2008-10-23 18:10 泡泡牛

在 struct 中
在头加上 from struct import * 就行了
  回复  更多评论    

# re: Python 操作黑莓(Blackberry)通信录 2008-10-23 18:11 firefox

你可真快啊 呵呵 认识一下怎么样?
  回复  更多评论    

# re: Python 操作黑莓(Blackberry)通信录 2008-11-17 20:22 rockstrike

lz用哪一款黑莓,我的是8700g。不过我刚接触python。
  回复  更多评论    

# re: Python 操作黑莓(Blackberry)通信录 2008-11-27 14:18 泡泡牛

我用的是8100

备份文件和那个型号是没有关系的:)
  回复  更多评论    

# re: Python 操作黑莓(Blackberry)通信录 2009-08-07 21:53 Waiting

你知道可以在黑莓上使用的python编辑器吗?我想在黑莓上玩python编程,谢谢了

deadcrane@gmail.com
  回复  更多评论    

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理