android手机通讯录备份还原代码

时间:2014-11-21 02:48:50
【文件属性】:
文件名称:android手机通讯录备份还原代码
文件大小:48KB
文件格式:RAR
更新时间:2014-11-21 02:48:50
源码 android 手机通讯录 备份 还原 http://blog.csdn.net/xiaoxiao108/article/details/6901964 最近想写段android程序玩玩。 开发环境 eclipse ,android2.2 开发环境搭建 1.先安装jdk 2.下载安装eclipse 3.下载安装android sdk 4.安装eclipse插件 adt 5.配置 Window > Preferences 中的android sdk路径 6.创建 AVD 实现方法很简单 1.把通讯录中的联系人,电话号码保存到txt文件中完成备份。 2.读取txt文件,导入到通讯录完成还原。 具体代码 1.添加 通讯录读写权限,存储卡写权限 2.写文件代码 File saveFile=new File("/sdcard/test.txt"); FileOutputStream outStream; try { outStream = new FileOutputStream(saveFile); outStream.write(str.getBytes()); outStream.close(); } catch (Exception e) { setTitle(e.toString()); } 3.取通讯录联系人 str=""; Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); if (cur.moveToFirst()) { int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID); int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); do { String contactId = cur.getString(idColumn); String disPlayName = cur.getString(displayNameColumn); str+=disPlayName; int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if(phoneCount>0){ Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, null, null); int i=0; String phoneNumber; if(phones.moveToFirst()){ do{ i++; phoneNumber= phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); if(i==1) str=str+","+phoneNumber; System.out.println(phoneNumber); }while(phones.moveToNext()); } } str+="\r\n"; } while (cur.moveToNext()); } } 4.读文件代码 try { File file = new File("/sdcard/test.txt"); FileInputStream inStream = new FileInputStream(file); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024*5]; int length = -1; while((length = inStream.read(buffer)) != -1 ){ outStream.write(buffer, 0, length); } outStream.close(); inStream.close(); String txt= outStream.toString(); } catch (IOException e){ setTitle(e.toString()); } 5.写通讯录 ContentValues values = new ContentValues(); Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values); long rawContactId = ContentUris.parseId(rawContactUri); values.clear(); values.put(Data.RAW_CONTACT_ID, rawContactId); values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE); values.put(StructuredName.GIVEN_NAME, name); getContentResolver().insert(Data.CONTENT_URI, values); values.clear(); values.put(Data.RAW_CONTACT_ID, rawContactId); values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE); values.put(Phone.NUMBER, num); values.put(Phone.TYPE, Phone.TYPE_HOME); getContentResolver().insert(Data.CONTENT_URI, values); 如果你发现有什么不合理的,需要改进的地方,或者你有什么更好的实现方法邮件联系328452421@qq.com(qq常年不在线,邮件联系) 朱晓 。相互交流 谢谢 http://blog.csdn.net/xiaoxiao108/article/details/6901964
【文件预览】:
test
----bin()
--------classes.dex(7KB)
--------xintai()
--------resources.ap_(11KB)
--------TestActivity.apk(16KB)
----res()
--------drawable-ldpi()
--------drawable-hdpi()
--------values()
--------drawable-mdpi()
--------layout()
----assets()
----default.properties(362B)
----gen()
--------xintai()
----proguard.cfg(1KB)
----.settings()
--------org.eclipse.jdt.core.prefs(208B)
----src()
--------xintai()
----.project(840B)
----.classpath(280B)
----AndroidManifest.xml(945B)

网友评论

  • 比较简单 提醒大家 没必要花5分下载 网上搜索一下csdn上面的很多博客都比这个写的好 不过还是感谢博主共享资源
  • 的确可以用,在网上找了好多天,头都大了,就这个可以用,我翻译成了c#
  • 不错的学习资料,还可以在上面多完善一些功能
  • 挺好用的,至少为我们提供了一个扩展的例子
  • 可以用。解决了很多麻烦
  • 很好,用了还不错
  • 非常不错,虽然有些简单了
  • 还不错,值得学习
  • 还不错,值得学习
  • 总的挺不错的,都实现了功能 ,可以设置保存的信息再多一些,姓名和手机号还是有点少 ,可以再加上其他字段存储
  • 基本内容 都实现了 学习了 自己在加一点东西 还是很好的
  • 还不错,可以设置保存的信息再多一些,光有姓名和手机号还是有点少 希望楼主继续优化 大家期待你的佳作
  • 挺好用的,至少为我们提供了一个扩展的例子
  • 还不错的资源
  • 可以使用,谢谢了
  • 只是简单的吧数据库内容写到txt中,没有用sqlite,关键是如果有多个电话号码,只能写一个出来
  • 就是想学习用的方法,虽然没派上什么用场,不过还是可以的
  • 非常简单,需要自己写列表
  • 基本备份的功能实现了,没有进行重复备份数据删除,会在不同次备份过程中出现多条相同备份文件
  • 还不错,可以设置保存的信息再多一些,光有姓名和手机号还是有点少
  • 改了可以用,还不错吧
  • 只能是用来参考了,不可以直接使用。
  • 不严谨,只备份了基本的几个属性。
  • 可以运行,初学者可以用
  • 还行,有点缺陷,但可以使用
  • 这是一个例子 不太好用
  • 可以运行,但不是很全面
  • 实现了基本功能,但是重复备份的问题没有解决,会导致出现多条相同通讯录
  • 很简单,可以参考参考
  • 嗯,保存的是在SDK中,以文本类型保存的!挺好的!!