2008年10月27日星期一

SQLite用于iPhone

下面是一些搜集的信息,关于iPhone使用SQLite数据库来保存通讯录数据的。

前两天还想的如果iphone上没有好的存储数据的方法的话,我就试用XML来存放了,结果刚才一Google,尽然别有洞天,有SQLite这么一个跨平台并适用于嵌入式的数据库,Iphone上就用这个,Good,这世个界真是又奇妙又强悍,啥都有.....早知道的话我以前软件也用SQLite了,又小又好玩....
今天升级了MAC OS X 到10.5.3,装了IPhone sdk,大概操作了几下,不错,道路正在一步步铺平......
看的出来,我最近一直在研究苹果的破东西,但愿能有点收获.....

超级无敌:SQLite Database Browser 所有iphone数据管理哦~~~~

一直在寻找能管理sms的东西
后来发现iphone都用了sqlitedb,包括一些以db结尾的数据库,如:sms.db
仔细一看sqlitedb,居然是标准数据库
然后找了很久找到了简单易用的数据库管理软件 SQLite Database Browser
这样一来就可以管理所有iphone数据了哦~~~~

例如:管理通讯录,用winSCP下载/private/var/root/Library/AddressBook/AddressBook.sqlitedb:


然后用SQLite Database Browser(附件中)打开:


然后选择Browse Data,然后选择表(Table),联系人是ABPerson,然后就可以看到数据了,修改好再用winSCP传回iPhone原来的地址,覆盖原文件即可


超级好用啊,数据库语言知道的朋友还可以在Execute SQL里直接使用SQL语言来操作哦,太方便了

----------------------------------------------------------------
转自http://bbs.iphone.com.cn/viewthread.php?tid=32478
1。首先安装简体中文包,重启iphone,然后在设置-常规设置-国际化设成简体中文,下面区域也设成中文.
2。然后处理联系人,运行weContact.exe,点击下载号本,如果从iphone 导入电话本失败的,可直接用Winscp或ibrick r连上iphone,下载/var/root/Library/AddressBook目录下的AddressBook.sqlitedb到本程序下,再运行weContact,就无须再导入电话本可以对联系信息进行排序了.
3. 按自己的要求排序名或姓(示例:点击把姓氏名字合并入姓,然后按拼音排序),完成后点击同步话本,就把排序后的号本同步到了iphone. 如果不能同步,就手工把此文件(AddressBook.sqlitedb)上传到/var/root/Library/AddressBook下即可
3。在iphone的设置->电话->排列顺序,按姓/名排序即可
4。重启iphone,再打开联系人,完成OK!!



谢谢大家的支持,改进大家提到过的一些问题。
1.01版本主要更新:
1、改进姓或名合并及分离时如果有一个栏目为null时变空问题
2、改进增加新联系人时前面有一空格问题
3、改进邮件、移动电话、公司电话有错位情况
4、运行时自动装入本地的电话本
5、增加姓氏和名字自由交换功能
说明:
1、关闭程序按钮就是iphoe上的home键,点一下就可以关闭程序。
2、联系人信息框中姓氏和名字的后面两个栏目是系统自动生成的排序标记,可自由修改。(如曾 系统自动生成是ceng,你把它改为zeng,再保存即可)
3、删除联系人和加入群组请在联系人名字上按鼠标右键,会弹出一个框进行操作。
4、增加群组或联系人点击右上角的+标记。

功能简介:
1、实现同iphone电话本同步(与outlook无关)
2、可以添加/删除/修改群组。
3、添加/删除/修改联系人信息
4、可以按姓和名自动生成按拼音排序标志(在iphone中会自动从A-Z排序联系人,方便查找)
5、可以按姓和名自动生成按笔划排序标志(在iphone中会自动以笔划排序联系人,方便查找),这个是疯友要求的,适合不会拼音的用户
6、整理电子邮件,从outlook同步过来的电话本中电子邮件一栏有[未发现电子邮件地址],可以一键删除
7、可以把姓氏和名字合并到一起,或者合并在一起的姓氏和名字分离到各自的栏位
8、可自由交换姓氏和名字,以符合国人习惯
9、排序字符可自己调整,以解决多音字姓的问题(排序字符在姓氏和名字的后面)

(本程序的目的主要是为了方便添加新联系人或修改联系人后可即时同步到iphone,并实现自动排序、群组分类,方便查找联系人)

几点说明:
1、通过本程序其实可实现任何形式的联系人排序,方法:可修改程序下的bh.txt文件(此文件为笔划排序表),按照此格式设定自己想要的编码,例如想用香港拼音排序,可以用以下这样方式建立bh.txt
徐CHUI
秦CHUN
......
建完后点击按笔划重新生成排序关键字即可。当然,你也可以手工自己修改排序关键字来实现任何方式的排序,点击联系人名单后,在联系人信息框姓氏、名字的后面,就是系统自动生成的排序关键字,改成自己想要的,再点击右上角的保存即可。

2、如果从iphone 导入电话本失败的,可直接用ibrick r连上iphone,下载/var/root/Library/AddressBook目录下的AddressBook.sqlitedb和 AddressBookImages.sqlitedb到本程序下,再运行weContact,就无须再导入电话本可以对联系信息进行管理了,完成了再把此两文件上传到/var/root/Library/AddressBook下即可

3、其实本程序没什么技术含量,就是下载iphone下的电话本数据库,然后进行相应的操作而已,操作完后再上传到iphone,程序在delphi下开发,iphone里的数据库用的是sqlite,如果大家有兴趣,本人可公布源码。

谨以此程序向iphone的老前辈致敬,说实话本人也非常反感weIphone发布的终极汉化补丁中众多的水印和SMS" class="t_tag">weSMS的最初界面,但同时也非常尊敬他们的劳动,对本程序有什么不满意的地方,只要有时间,必改,谢谢!!

修改iphone通话记录100条的限制(也可清除通话时间记录)
iphone电话记录有100条的上限,考虑到部分人的需要,公布修改方法如下:1. 用ibrickr下载call_history.db数据库到本机,在:/paivate/var/root/Library/CallHistory/目录下面 2. 下载Sqlite数据库,很小的程序。 3. 在命令行下输入"sqlite calLhistory.db"后回车(注意要在下载数据库文件和sqlite文件一起的目录下面操作) 4. 输入:" update _SqliteDatabaseProperties set value=500 where key='call_history_limit' "后回车; 5. 再输入:"go"回车,正常的话应该什么都不显示,unix风格,呵呵; 6. 输入:"select * from _SqliteDatabaseProperties "检查 7. 无误后用ibrickr上传回iPhone即可。


没有评论: