一个联系人备份的程序,搞不定了,有人愿意帮我看看不?
解决方案 »
- 关于最后的bitmap 无法保存绘制图的问题,求看看问题在哪
- premature end of file
- MediaRecorder.start()在CALL_STATE_OFFHOOK中的问题。
- 关于删除RadioButton的文字
- 一个普通的apk安装到哪个文件夹下面?
- 新浪微博android sdk 使用问题
- webapp如果禁止链接长按
- android绘制中国象棋棋盘--旗子周围透明效果
- 模拟器无法显示通过URL路径加载的图片
- Android studio 的onclick" ",引号里要怎么写变换颜色写changeColor,有红线
- 问卷系统,3个activity,如何储存最后修改的答案?
- AppWidgetProvider启动Activity
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);
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
ops.add(ContentProviderOperation.newInsert(
ContactsContract.RawContacts.CONTENT_URI).withValue(
ContactsContract.RawContacts.ACCOUNT_TYPE, null).withValue(
ContactsContract.RawContacts.ACCOUNT_NAME, null).build());
你好??在你新建联系人的时候,这里不会报空吗??