80,493
社区成员
发帖
与我相关
我的任务
分享
Cursor c = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while(c.moveToNext()) {
//取得联系人名字
int nameIndex = c.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String name = c.getString(nameIndex);
//取得联系人号码
int numberIndex = c.getColumnIndex(PhoneLookup.NUMBER);
String number = c.getString(numberIndex);
}
package com.wisher.main;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private String id = null;
private String name = null;
private String phoneNumber = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
getContact();
Toast.makeText(MainActivity.this, "备份成功", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
private void getContact() throws IOException {
Cursor c = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (c.moveToNext()) {
id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
name = c.getString(c
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
Log.i("MainActivity", "Name --> " + name);
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "
+ id, null, null);
XMLWriter output = new XMLWriter(new FileWriter(new File(
"/mnt/sdcard/backup/phoneBackup.xml")));
Document document = DocumentHelper.createDocument();
// 使用addElement创建根元素
Element rootElement = document.addElement("备份");
Element articleElement = rootElement.addElement("属性");
while (phones.moveToNext()) {
phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.i("MainActivity", "PhoneNumber --> " + phoneNumber);
Element nameElement = articleElement.addElement("姓名");
nameElement.setText(name);
Element phoneElement = articleElement.addElement("电话");
phoneElement.setText(phoneNumber);
output.write(document);
output.close();
}
phones.close();
}
c.close();
}
}

List<Contact> contacts = new ArrayList<Contact>();
Cursor cursor = context.getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String id = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
int isHas = Integer.parseInt(cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)));
List<String> numbers = new ArrayList<String>();// 电话号码集
//看看是否有电话号码
if (isHas > 0) {
Cursor c = context.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + id, null, null);
while (c.moveToNext()) {
String number = c
.getString(c
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
numbers.add(number);
}
c.close();
}
Contact contact = new Contact();
contact.setId(Integer.parseInt(id));
contact.setName(name);
contact.setNumbers(numbers);
contacts.add(contact);
}
cursor.close();