Android通讯录+还原备份

自己弄的一个很简单的通讯录,还原备份是从开源文件截取来的。新人,不喜勿喷

public class ContactInfo {private String name;private String phone;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}} public class ContactInfoProvider {/** * 获取手机里面全部的联系人信息 * * @return */public static List getContactInfos(Context context) {ContentResolver resolver = context.getContentResolver();Uri uri = Uri.parse("content://com.android.contacts/contacts");Uri datauri = Uri.parse("content://com.android.contacts/data");List infos = new ArrayList();Cursor cursor = resolver.query(uri, new String[] { "_id" }, null, null,null);while (cursor.moveToNext()) {String id = cursor.getString(0);System.out.println("联系人id:" + id);if (id != null) {ContactInfo info = new ContactInfo();Cursor dataCursor = resolver.query(datauri, new String[] {"data1", "mimetype" }, "raw_contact_id=?",new String[] { id }, null);while (dataCursor.moveToNext()) {String data1 = dataCursor.getString(0);String mimetype = dataCursor.getString(1);if ("vnd.android.cursor.item/name".equals(mimetype)) {System.out.println("手机联系人:" + data1);info.setName(data1);} else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {System.out.println("电话号码:" + data1);info.setPhone(data1);}}infos.add(info);dataCursor.close();}}cursor.close();return infos;}}public class Listview2 extends Activity {private ListView lv_contacts;private List contactInfos;private ImageButton shezhi;private ImageButton button_call;private ImageButton bohao;private Button add;private RelativeLayout duihua;final int MYDIALOG = 1;/** * 定义handler */private Handler handler = new Handler() {public void handleMessage(android.os.Message msg) {lv_contacts.setAdapter(new ContactAdapter());};};@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initData();initView();shezhi = (ImageButton) findViewById(R.id.shezhi);button_call = (ImageButton) findViewById(R.id.call);add = (Button) findViewById(R.id.add_btn);lv_contacts = (ListView) findViewById(R.id.list);// setListener();/** * 设置监听事件 */shezhi.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubComponentName componentName = new ComponentName(Listview2.this,"jmpt.tongxun3.ShezhiActivity");Intent intent = new Intent();intent.setComponent(componentName);startActivity(intent);}});button_call.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubUri uri = Uri.parse("tel:");Intent intent = new Intent(Intent.ACTION_DIAL, uri);startActivity(intent); // ������һ������}});add.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubUri insertUri = android.provider.ContactsContract.Contacts.CONTENT_URI;Intent intent = new Intent(Intent.ACTION_INSERT, insertUri);startActivityForResult(intent, 1008);}});lv_contacts.setOnItemClickListener(new OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {// TODO Auto-generated method stubMap map=(Map)((ListView)arg0).getItemAtPosition(arg2); Toast.makeText(Listview2.this, map.get("num"), Toast.LENGTH_SHORT).show(); showDialog(MYDIALOG);}});}@Overrideprotected Dialog onCreateDialog(int id) {// TODO Auto-generated method stubDialog dialog=null;switch(id){case MYDIALOG:Builder builder= new AlertDialog.Builder(this);builder.setTitle("duihua");builder.setMessage("hi");dialog=builder.create();break;default:break;}return dialog;}/** * 初始化view对象 */private void initView() {lv_contacts = (ListView) findViewById(R.id.list);shezhi = (ImageButton) findViewById(R.id.shezhi);button_call = (ImageButton) findViewById(R.id.call);bohao = (ImageButton) findViewById(R.id.iv_contact_icon);add = (Button) findViewById(R.id.add_btn);duihua = (RelativeLayout)findViewById(R.id.duihua);}private void initData() {new Thread() {@Overridepublic void run() {contactInfos = ContactInfoProvider.getContactInfos(Listview2.this);handler.sendEmptyMessage(0);};}.start();}private class ContactAdapter extends BaseAdapter { @Overridepublic int getCount() {return contactInfos.size();}@Overridepublic Object getItem(int arg0) {return null;}@Overridepublic long getItemId(int position) {return 0;}@Overridepublic View getView(final int position, View convertView,ViewGroup parent) {View view = View.inflate(getApplicationContext(),R.layout.list_contact_item, null);TextView tv_name = (TextView) view.findViewById(R.id.tv_contact_name);TextView tv_phone = (TextView) view.findViewById(R.id.tv_contact_phone);ContactInfo info = contactInfos.get(position);tv_name.setText(info.getName());tv_phone.setText(info.getPhone());ImageButton iv_contact_icon = (ImageButton) view.findViewById(R.id.iv_contact_icon);iv_contact_icon.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 调用系统方法拨打电话Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ contactInfos.get(position).getPhone()));startActivity(dialIntent);}});return view;}}/* private String[] lianxiren1 = new String[] { "拨打电话", "查看详细","删除" };//群组联系人弹出页 private void showContactDialog(final String[] arg , final int position){ new AlertDialog.Builder(this).setTitle(contactInfos.get(position).getName()).setItems(arg, new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which){ Uri uri = null; switch(which){ case 0://打电话 String toPhone = contactInfos.get(position).getPhone(); uri = Uri.parse("tel:" + toPhone); Intent it = new Intent(Intent.ACTION_CALL, uri); startActivity(it); break; case 1:// 查看详细 修改联系人资料 uri = ContactsContract.Contacts.CONTENT_URI;// Uri personUri = ContentUris.withAppendedId(uri, getContactId()); Intent intent2 = new Intent(); intent2.setAction(Intent.ACTION_VIEW);// intent2.setData(personUri); startActivity(intent2); break; case 2:// 删除 //showDelete(contactInfos.get(position).setName(toPhone), position); break; } } }).show(); }*/// 刷新数据protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (1008 == requestCode) {initData();}super.onActivityResult(requestCode, resultCode, data);}}

文件源码:通讯录+备份还原www.eoeandroid.com/thread-496745-1-1.html(出处: eoe 移动开发者论坛)
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.Phon
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值