今天将手机升级成姜饼(2.3),审计完,发现电话薄都没了,还好到outlook中找到以前用htc同步的数据。发现,outlook太悲剧了,不能完全导入,最后自己写了个小小小程序,outlook电话薄里直接copy出的格式格式为:
GPS导航
个人信息:
地址:
电话:
传真:
移动电话: 13815203***
网页:
业务信息:
职务:
部门:
办公室:
公司:
地址:
电话:
传真:
寻呼机:
网页:
附注:
通过java代码,转换成 PhoneNumber 对象
package com.lazy.upup.model;
/**
* <P> [功能] 电话号码</P>
* <P> [说明] </P>
* <P> [备注] </P>
* <P> [环境] android 2.1 以上</P>
* @author Lazy
* @version ver 1.0
* @2011-4-16 下午08:38:58
*/
public class PhoneNumber {
private int id; //在data表里的ID
private int raw; //在raw里的ID
private String name1;
private String name2;
private String phoneNumber1;
private String phoneNumber2;
private String email;
public String getName1() {
return name1;
}
public void setName1(String name1) {
this.name1 = name1;
}
public String getName2() {
return name2;
}
public void setName2(String name2) {
this.name2 = name2;
}
public String getPhoneNumber1() {
return phoneNumber1;
}
public void setPhoneNumber1(String phoneNumber1) {
this.phoneNumber1 = phoneNumber1;
}
public String getPhoneNumber2() {
return phoneNumber2;
}
public void setPhoneNumber2(String phoneNumber2) {
this.phoneNumber2 = phoneNumber2;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getRaw() {
return raw;
}
public void setRaw(int raw) {
this.raw = raw;
}
}
主要导入的方法代码:
/**
* 将电话号码人名写入电话薄
* 首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId
* 这时后面插入data表的依据,只有执行空值插入,才能使插入的联系人在通讯录里面可见
*/
public static void addPeopleNumber(Activity activity ,PhoneNumber pn){
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();
//首先向RawContacts.CONTENT_URI执行一个空值插入(raw_contacts 表), 为了获取生成的联系人 ID
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME, null)
.build());
//姓名
ops.add(ContentProviderOperation.newInsert(android.provider.ContactsContract.Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.GIVEN_NAME, pn.getName1())
.build());
//更新手机号码:Data.RAW_CONTACT_ID 获取上一条语句插入联系人时产生的 ID
ops.add(ContentProviderOperation.newInsert(android.provider.ContactsContract.Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, pn.getPhoneNumber1()) // "data1"
.withValue(Phone.TYPE, Phone.TYPE_MOBILE)
.withValue(Phone.LABEL, "手机号1")
.build());
//手机号码2
if(pn.getPhoneNumber2()!=null && !"".equals(pn.getPhoneNumber2().trim())){
ops.add(ContentProviderOperation.newInsert(android.provider.ContactsContract.Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, pn.getPhoneNumber2()) // "data1"
.withValue(Phone.TYPE, Phone.TYPE_HOME)
.withValue(Phone.LABEL, "手机号2")
.build());
}
//电子邮件
if(pn.getEmail()!=null){
ops.add(ContentProviderOperation.newInsert(android.provider.ContactsContract.Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE)
.withValue(Email.DATA, pn.getEmail())
.withValue(Email.TYPE, Email.TYPE_WORK)
.build());
}
try {
ContentProviderResult[] results = activity.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
for(ContentProviderResult result : results){
Log.d(Constant.TAG, result.uri.toString());
}
} catch (RemoteException e) {
e.printStackTrace();
} catch (OperationApplicationException e) {
e.printStackTrace();
}
}
分享到:
相关推荐
将 Excel 表格的电话本快速导入手机 在这个快速导入电话本的指南中,我们将学习如何将 Excel 表格的电话本快速导入手机。这个操作过程可以分为三个步骤:手机操作、电脑操作和再次回到手机操作。 手机操作 首先,...
本文将详细介绍如何解决VCF电话本的乱码问题以及如何将其导入导出到Excel电脑。 首先,乱码问题可能源于VCF文件中的字符编码与读取设备或软件支持的编码不一致。为了解决这个问题,我们需要使用特定的工具或方法...
《I900手机电话本导入导出工具详解》 在数字时代,手机中的联系人信息是我们日常沟通的重要桥梁。对于拥有三星I900手机的用户来说,管理这些联系人信息的便捷性和效率至关重要。"I900手机电话本导入导出工具"就是...
“海豚小助手”的设计思想是为用户提供一个使用方便、界面友好的资料管理平台,同时有效保证智能电话用户的数据资料安全,是一款电话号码导入软件,能够分类分组编辑,公共办公场所智能电话。 “海豚小助手”运行于...
本教程将详细介绍如何利用管家婆软件批量导入商品信息和往来单位信息,避免手动录入带来的繁琐与错误。 首先,我们需要准备数据源。商品信息通常包括商品编码、商品名称、规格型号、单位、单价、库存等;往来单位...
这些字段可能包括供应商或客户的ID、名称、地址、电话号码、电子邮件、银行信息等。为了确保数据导入的成功,字段的顺序和格式必须与EBS系统的要求相匹配,否则可能会导致导入失败或数据不准确。 导入过程中,EBS...
这些文件可能帮助用户进一步优化电话薄的使用体验,例如添加更多自定义字段,或者提供更高效的数据导入导出功能。如果其中包含的是第三方电话薄管理应用,那么可能提供了如联系人分组管理、联系人同步、批量编辑等...
电话薄查询系统是一种常见的软件应用,它主要用于存储和管理个人或组织的联系人信息,方便用户快速查找和联系相关人员。这种系统通常包含一系列功能,如添加、编辑、删除联系人,以及通过姓名、电话号码或其他标识符...
本项目“基于MFC简单的电话薄源代码”是一个适合初学者实践和学习的示例,它涵盖了MFC的基本用法,特别是涉及到用户界面设计和数据管理的部分。 在MFC中,应用程序通常由多个类组成,包括主框架窗口类、文档类、...
在这个"用QT做的电话本程序"项目中,我们可以看到作者尝试利用QT来构建一个类似于手机通讯录的应用。 在描述中提到,作者自认为水平很菜,这可能意味着代码可能不够优化或者结构不那么清晰。然而,学习编程的过程中...
在本案例中,.NET被用于创建一个会员导入系统,利用其强大的数据处理和对象模型,确保了系统的稳定性和可扩展性。 会员导入系统的核心功能在于数据导入。通常,餐厅可能已经积累了大量的线下会员信息,如姓名、电话...
《Vc++电话薄V1.0:利用Vc++与Access数据库构建电话簿系统》 电话簿管理系统是日常生活中非常实用的一种工具,它能够帮助我们有效地存储和管理联系人的信息。在信息技术高速发展的今天,利用编程语言创建这样的系统...
本文档以达梦7数据库为例,详细介绍了其提供的两种命令行工具——dexp和dimp,用于逻辑方式导出和导入数据库中的数据。这些工具功能强大,能够完成数据库的备份还原工作,并且可以通过命令行参数灵活配置备份还原...
这篇教程将指导你如何利用网页版QQ同步助手将纸质电话号码快速导入到手机通讯录。 首先,你需要准备一份包含电话号码的电子表格。在这个案例中,我们有两个Excel文件,分别是"import_调整后.xls"和"import.xls"。...
使用此功能可将用户在计算机上制作好电话簿文件导入更新到播放器中,具体步骤为: ... 开机进入电话簿功能并进入导入电话簿选项。 确认后即可将刚才copy入的telbook.bin文件中内容导入播放器中。
这可能包括姓名、性别、出生日期、身份证号、家庭住址、联系电话等。通过批量导入和导出,学校可以快速更新数据库,例如在开学季录入新生信息或进行年度数据整理。 2. **成绩管理**:系统支持导入导出成绩,便于...
本篇文章将深入探讨如何利用C++ MFC来实现一个电话薄系统,旨在帮助开发者理解这一技术的应用。 首先,电话薄系统的核心功能包括添加联系人、查找联系人、编辑联系人信息以及删除联系人。这些功能都需要通过C++的...
本文将深入探讨“黑莓手机系统电话薄导出源码”这一主题,涉及的技术包括黑莓(Blackberry)操作系统、Java以及J2ME(Java 2 Micro Edition)。 首先,黑莓手机系统以其独特的全键盘和高效的工作环境吸引了大量的...