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

<span style="font-family: Arial; font-size: 14px; line-height: 26px;"></span>

最近想写段android程序玩玩。

<br>

开发环境 eclipse ,android2.2

开发环境搭建

1.先安装jdk

2.下载安装eclipse

3.下载安装android sdk

4.安装eclipse插件 adt

5.配置Window > Preferences 中的android sdk路径

6.创建AVD

<br>


实现方法很简单<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">
1.把通讯录中的联系人,电话号码保存到txt文件中完成备份。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">
2.读取txt文件,导入到通讯录完成还原。<br>


具体代码<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">
1.添加 通讯录读写权限,存储卡写权限

<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission><br>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><br>
<uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission><br>

2.写文件代码

<span style="white-space: pre;"> </span>File saveFile=new File("/sdcard/test.txt");<br>
FileOutputStream outStream;<br><span style="white-space: pre;"></span>try {<br><span style="white-space: pre;"></span>outStream = new FileOutputStream(saveFile);<br><span style="white-space: pre;"></span> outStream.write(str.getBytes());<br><span style="white-space: pre;"></span> outStream.close();<br><span style="white-space: pre;"></span>} catch (Exception e) {<br><br><br><span style="white-space: pre;"></span>setTitle(e.toString());<br><span style="white-space: pre;"></span>}<br>


3.取通讯录联系人

<span style="white-space: pre;"> </span>str="";<br>
Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); <br>
if (cur.moveToFirst()) { <br>
int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID); <br>
int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); <br>
do { <br>
String contactId = cur.getString(idColumn); <br>
String disPlayName = cur.getString(displayNameColumn); <br>
str+=disPlayName;<br>
int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); <br>
if(phoneCount>0){ <br>
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, null, null);<br>
int i=0;<br>
String phoneNumber;<br>
if(phones.moveToFirst()){ <br>
do{ <br><span style="white-space: pre;"> </span>i++;<br>
phoneNumber= phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));<br>
if(i==1)<br>
str=str+","+phoneNumber;<br>
System.out.println(phoneNumber); <br>
}while(phones.moveToNext()); <br>
} <br>
} <br>
str+="\r\n";<br>
} while (cur.moveToNext()); <br>
} <br>
}
<br>
4.读文件代码

<span style="white-space: pre;"> </span>try {<br><span style="white-space: pre;"></span>File file = new File("/sdcard/test.txt");<br><span style="white-space: pre;"></span>FileInputStream inStream = new FileInputStream(file);<br><span style="white-space: pre;"></span> ByteArrayOutputStream outStream = new ByteArrayOutputStream();<br><span style="white-space: pre;"></span> byte[] buffer = new byte[1024*5];<br><span style="white-space: pre;"></span> int length = -1;<br><span style="white-space: pre;"></span> while((length = inStream.read(buffer)) != -1 ){<br><span style="white-space: pre;"></span> outStream.write(buffer, 0, length);<br><span style="white-space: pre;"></span> }<br><span style="white-space: pre;"></span> outStream.close();<br><span style="white-space: pre;"></span> inStream.close();<br><span style="white-space: pre;"></span> String txt= outStream.toString();<br>

<span style="white-space: pre;"> </span>} catch (IOException e){<br><span style="white-space: pre;"></span> setTitle(e.toString());<br><span style="white-space: pre;"></span>}

<br>

5.写通讯录

<span style="white-space: pre;"> </span>ContentValues values = new ContentValues();<br><span style="white-space: pre;"></span>Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values);<br><span style="white-space: pre;"></span>long rawContactId = ContentUris.parseId(rawContactUri);<br><span style="white-space: pre;"></span>values.clear();<br><span style="white-space: pre;"></span>values.put(Data.RAW_CONTACT_ID, rawContactId);<br><span style="white-space: pre;"></span>values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);<br><span style="white-space: pre;"></span>values.put(StructuredName.GIVEN_NAME, name);<br><span style="white-space: pre;"></span>getContentResolver().insert(Data.CONTENT_URI, values);<br><span style="white-space: pre;"> </span>values.clear();<br><span style="white-space: pre;"></span>values.put(Data.RAW_CONTACT_ID, rawContactId);<br><span style="white-space: pre;"></span>values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);<br><span style="white-space: pre;"></span>values.put(Phone.NUMBER, num);<br><span style="white-space: pre;"></span>values.put(Phone.TYPE, Phone.TYPE_HOME);<br><span style="white-space: pre;"></span>getContentResolver().insert(Data.CONTENT_URI, values);<br>

<br>

<br>

<br>

<br>

<br>

<br>

如果你发现有什么不合理的,需要改进的地方,或者你有什么更好的实现方法<span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'lucida Grande',Verdana; font-size: 14px; line-height: 23px;">邮件联系328452421@qq.com(qq常年不在线,邮件联系)</span><a href="mailto:328452421@qq.com" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(255,153,0); text-decoration: none;"></a>朱晓
。相互交流 谢谢


源码下载地址[url=http://download.csdn.net/detail/xiaoxiao108/3741045]http://download.csdn.net/detail/xiaoxiao108/3741045[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值