一个联系人备份的程序,搞不定了,有人愿意帮我看看不?

解决方案 »

  1.   

    你备份成什么格式?是导出vcf吗?
      

  2.   

    package com.BaseDataBackUp;import java.io.Serializable;public class Bla implements Serializable { private static final long serialVersionUID = 1L;
    public String blaDate; 
        public String blaText; 
     } 
    下面是一个序列化的方法
    public static Boolean Save(String path, Object javaObject) {
    FileOutputStream fos = null;
    ObjectOutputStream oos = null;
    try {
    fos =new FileOutputStream(path); //content.openOutputStream(url);
    oos = new ObjectOutputStream(fos);
    oos.writeObject(javaObject); // 括号内参数为要保存java对象
    oos.flush();
    } catch (FileNotFoundException e) {
    Log.e("SAVE", e.toString());
    return false;
    } catch (IOException e) {
    Log.e("SAVE", e.toString());
    return false;
    } finally {
    try {
    oos.close();
    fos.close();
    } catch (IOException e) {
    Log.e("SAVE", e.toString());
    return false;
    }
    }
    return true;
    }
    在Activity的Activity里,我测试,把一个对象序列化到文件
    Bla d=new Bla();
    d.blaDate="data1";
    d.blaText="text1";
    Object o=d;
    SaveInfo.Save(m_strFile,o);//save里的断点直接跳了过去,这个方法没被执行一样,目录里没有文件存在

    Bla b=(Bla)SaveInfo.Reade(m_strFile);
      

  3.   

    // 添加Organization
    ArrayList<ContactInfo.OrgnizationInfo> arrOrganization = info
    .getOrganization();
    for (ContactInfo.OrgnizationInfo org : arrOrganization) {
    if (org != null) {
    ContentProviderOperation op = ContentProviderOperation
    .newInsert(ContactsContract.Data.CONTENT_URI)
    .withValueBackReference(
    ContactsContract.Data.RAW_CONTACT_ID,
    rawContactInsertIndex)
    .withValue(
    ContactsContract.Data.MIMETYPE,
    ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
    .withValue(
    ContactsContract.CommonDataKinds.Organization.COMPANY,
    org.getCompany())
    .withValue(
    ContactsContract.CommonDataKinds.Organization.TYPE,
    org.getType())
    .withValue(
    ContactsContract.CommonDataKinds.Organization.LABEL,
    org.getLabel())
    .withValue(
    ContactsContract.CommonDataKinds.Organization.TITLE,
    org.getTitle())
    .withValue(
    ContactsContract.CommonDataKinds.Organization.DEPARTMENT,
    org.getDepartment())
    .withValue(
    ContactsContract.CommonDataKinds.Organization.JOB_DESCRIPTION,
    org.getJobDescription())
    .withValue(
    ContactsContract.CommonDataKinds.Organization.SYMBOL,
    org.getSymbol())
    .withValue(
    ContactsContract.CommonDataKinds.Organization.PHONETIC_NAME,
    org.getPhoneticName())
    .withValue(
    ContactsContract.CommonDataKinds.Organization.OFFICE_LOCATION,
    org.getOfficeLocation()).build();
    ops.add(op);
    }
    }
    arrOrganization.clear();
    arrOrganization = null;
    // 添加IM信息
    ArrayList<ContactInfo.IMInfo> arrIM = info.getIM();
    for (ContactInfo.IMInfo im : arrIM) {
    if (im != null) {
    ContentProviderOperation op = ContentProviderOperation
    .newInsert(ContactsContract.Data.CONTENT_URI)
    .withValueBackReference(
    ContactsContract.Data.RAW_CONTACT_ID,
    rawContactInsertIndex)
    .withValue(
    ContactsContract.Data.MIMETYPE,
    ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE)
    .withValue(
    ContactsContract.CommonDataKinds.Im.DATA,
    im.getData())
    .withValue(
    ContactsContract.CommonDataKinds.Im.TYPE,
    im.getType())
    .withValue(
    ContactsContract.CommonDataKinds.Im.LABEL,
    im.getLabel())
    .withValue(
    ContactsContract.CommonDataKinds.Im.PROTOCOL,
    im.getProtocol())
    .withValue(
    ContactsContract.CommonDataKinds.Im.CUSTOM_PROTOCOL,
    im.getCustomProtocol()).build();
    ops.add(op);
    }
    }
    arrIM.clear();
    arrIM = null;
    // 添加Note
    ArrayList<String> arrNote = info.getNotes();
    for (String strNote : arrNote) {
    if (strNote != null && strNote.trim() != "") {
    ops
    .add(ContentProviderOperation
    .newInsert(
    ContactsContract.Data.CONTENT_URI)
    .withValueBackReference(
    ContactsContract.Data.RAW_CONTACT_ID,
    rawContactInsertIndex)
    .withValue(
    ContactsContract.Data.MIMETYPE,
    ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE)
    .withValue(
    ContactsContract.CommonDataKinds.Note.NOTE,
    strNote).build());
    }
    }
    // 添加NickName
    ArrayList<String> arrNickName = info.getNickName();
    for (String strNickName : arrNickName) {
    if (strNickName != null && strNickName.trim() != "") {
    ops
    .add(ContentProviderOperation
    .newInsert(
    ContactsContract.Data.CONTENT_URI)
    .withValueBackReference(
    ContactsContract.Data.RAW_CONTACT_ID,
    rawContactInsertIndex)
    .withValue(
    ContactsContract.Data.MIMETYPE,
    ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE)
    .withValue(
    ContactsContract.CommonDataKinds.Nickname.NAME,
    strNickName).build());
    }
    }
    // 添加WebSite
    ArrayList<ContactInfo.WebSiteInfo> arrWebSite = info.getWebSite();
    for (ContactInfo.WebSiteInfo web : arrWebSite) {
    if (web != null) {
    ContentProviderOperation op = ContentProviderOperation
    .newInsert(ContactsContract.Data.CONTENT_URI)
    .withValueBackReference(
    ContactsContract.Data.RAW_CONTACT_ID,
    rawContactInsertIndex)
    .withValue(
    ContactsContract.Data.MIMETYPE,
    ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE)
    .withValue(
    ContactsContract.CommonDataKinds.Website.URL,
    web.getURL())
    .withValue(
    ContactsContract.CommonDataKinds.Website.TYPE,
    web.getType())
    .withValue(
    ContactsContract.CommonDataKinds.Website.LABEL,
    web.getLabel()).build();
    ops.add(op);
    }
    }
    arrWebSite.clear();
    arrWebSite = null;
    this.m_Content.applyBatch(ContactsContract.AUTHORITY, ops);
    return true; } catch (Exception e) {
    Log.e("Add", "添加联系人时出错:" + e.getMessage());
    return false;
    }
    }
    这是我添加联系人的代码11-18 06:46:13.349: E/Add(215): 添加联系人时出错:Unknown uri: content://com.android.contacts/data/phones
      

  4.   


    ops.add(ContentProviderOperation.newInsert(
    ContactsContract.RawContacts.CONTENT_URI).withValue(
    ContactsContract.RawContacts.ACCOUNT_TYPE, null).withValue(
    ContactsContract.RawContacts.ACCOUNT_NAME, null).build());
    你好??在你新建联系人的时候,这里不会报空吗??