Android ithValue(StructuredPostal.TYPE,add.TYPE).build()); } //增加组织 用于(组织数据组织:组织) { 添加操作(ContentProviderOperation .newInsert(contacts合同.
ithValue(StructuredPostal.TYPE,add.TYPE).build()); } //增加组织 用于(组织数据组织:组织) { 添加操作(ContentProviderOperation .newInsert(contacts合同.Data.CONTENT\u URI) .withValueBackReference( Contacts contract.Data.RAW_CONTACT_ID,RAW contactInsertIndex) .withValue(ContactsContact.Data.MIMETYPE、Organization.CONTENT\u ITEM\u TYPE) .withValue(Organization.DATA,org.company) .withValue(Organization.TYPE,org.TYPE) .withValue(Organization.TITLE,org.TITLE) .withValue(Organization.LABEL、org.customLabel) .build()); } //添加即时消息 用于(RowData IM:IMs) { 添加操作(ContentProviderOperation .newInsert(contacts合同.Data.CONTENT\u URI) .withValueBackReference( Contacts contract.Data.RAW_CONTACT_ID,RAW contactInsertIndex) .withValue(contacts.contract.Data.MIMETYPE、Im.CONTENT\u ITEM\u TYPE) .withValue(即时数据,即时数据) .withValue(Im.TYPE,Im.TYPE).build()); } //添加注释 if(Notes!=null&!Notes.equals(“”) { 添加操作(ContentProviderOperation .newInsert(contacts合同.Data.CONTENT\u URI) .withValueBackReference( Contacts contract.Data.RAW_CONTACT_ID,RAW contactInsertIndex) .withValue(contacts合同.数据.复制类型,注释.内容\项目\类型) .withValue(Note.Note,Notes.build()); } //添加照片 如果(dp!=null) { 添加操作(ContentProviderOperation .newInsert(contacts合同.Data.CONTENT\u URI) .withValueBackReference( Contacts contract.Data.RAW_CONTACT_ID,RAW contactInsertIndex) .withValue(联系人合同.数据.复制类型,照片.内容\项目\类型) .withValue(Photo.Photo,dp.build()); } //添加生日 如果(生日!=null&&!生日.equals(“”) { 添加操作(ContentProviderOperation .newInsert(contacts合同.Data.CONTENT\u URI) .withValueBackReference( Contacts contract.Data.RAW_CONTACT_ID,RAW contactInsertIndex) .withValue(ContactsContact.Data.MIMETYPE、CommonDataTypes.Event.CONTENT\u ITEM\u TYPE) .withValue(CommonDataTypes.Event.START\u日期、生日) .withValue(commonDataTypes.Event.TYPE,commonDataTypes.Event.TYPE_birth.build());//人数 } cr.applyBatch(联系合同管理局,ops); } 捕获(例外e) { e、 printStackTrace(); Toast.makeText(CO,“异常:+e.toString()+”eebolla:+e.getMessage(),Toast.LENGTH_SHORT).show(); } importStatus+=parseContact.getParseLen(); } db.close(); }而(ret>0); db.close(); }捕获(例外e){ Toast.makeText(CO,“NO”+e.getMessage()+“-”+e.getLocalizedMessage()+“-”+e.toString(),Toast.LENGTH_SHORT).show(); } }catch(filenotfounde异常){ } }Android ithValue(StructuredPostal.TYPE,add.TYPE).build()); } //增加组织 用于(组织数据组织:组织) { 添加操作(ContentProviderOperation .newInsert(contacts合同.,android,contactscontract,vcf-vcard,Android,Contactscontract,Vcf Vcard,ithValue(StructuredPostal.TYPE,add.TYPE).build()); } //增加组织 用于(组织数据组织:组织) { 添加操作(ContentProviderOperation .newInsert(contacts合同.Data.CONTENT\u URI) .withValueBackReference( Contacts contract.Data.RAW_CONTACT_ID,RAW contactInsertIndex) .withValue(Cont
Guyz请不要这样走开!!!!对不起,不知道。。我从未在vCardIO上工作过
public void doImport(final String fileName, final boolean replace) {
try {
File vcfFile = new File(fileName);
final BufferedReader vcfBuffer = new BufferedReader(new FileReader(fileName),1048576);
final long maxlen = vcfFile.length();
// Start lengthy operation in a background thread
long importStatus = 0;
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
SQLiteStatement querySyncId = db.compileStatement("SELECT " + SYNCID + " FROM " + SYNCDATA_TABLE_NAME + " WHERE " + PERSONID + "=?");
SQLiteStatement queryPersonId = db.compileStatement("SELECT " + PERSONID + " FROM " + SYNCDATA_TABLE_NAME + " WHERE " + SYNCID + "=?");
SQLiteStatement insertSyncId = db.compileStatement("INSERT INTO " + SYNCDATA_TABLE_NAME + " (" + PERSONID + "," + SYNCID + ") VALUES (?,?)");
db.close();
Contact parseContact = new Contact(querySyncId, queryPersonId, insertSyncId);
String popa="";
popa=parseContact.getContent();
try {
long ret = 0;
do {
ret = parseContact.parseVCard(vcfBuffer);
//this is the snippet line which has the potential to beat the blues out of any programmer,always throwing an exception!
parseContact.addContact(CO, 0, true);
} while (ret > 0);
db.close();
} catch (Exception e) {
Toast.makeText(CO,"NO "+e.getMessage()+"-"+e.getLocalizedMessage()+"-"+e.toString(), Toast.LENGTH_SHORT).show();
}
public void doImport(final String fileName, final boolean replace) {
try {
File vcfFile = new File(fileName);
final BufferedReader vcfBuffer = new BufferedReader(new FileReader(fileName),1048576);
final long maxlen = vcfFile.length();
long importStatus = 0;
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
SQLiteStatement querySyncId = db.compileStatement("SELECT " + SYNCID + " FROM " + SYNCDATA_TABLE_NAME + " WHERE " + PERSONID + "=?");
SQLiteStatement queryPersonId = db.compileStatement("SELECT " + PERSONID + " FROM " + SYNCDATA_TABLE_NAME + " WHERE " + SYNCID + "=?");
SQLiteStatement insertSyncId = db.compileStatement("INSERT INTO " + SYNCDATA_TABLE_NAME + " (" + PERSONID + "," + SYNCID + ") VALUES (?,?)");
db.close();
Contact parseContact = new Contact(querySyncId, queryPersonId, insertSyncId);
String popa="";
popa=parseContact.getContent();
try {
long ret = 0;
do {
ret = parseContact.parseVCard(vcfBuffer);
/* GOOGLE CODE IS JUST THIS ON LINE WHICH AIN'T WORKING!!
parseContact.addContact(CO, 0, true); */
if (ret >= 0) {
String DisplayName = parseContact.displayName;
List<RowData> MobileNumbers=parseContact.phones;
List <RowData> Addresses = parseContact.addrs;
List <RowData> IMs = parseContact.ims;
List <OrgData> Orgs = parseContact.orgs;
String Notes = parseContact.notes;
byte[] dp = parseContact.photo;
String BirthDay = parseContact.birthday;
ContentResolver cr = CO.getContentResolver();
List<RowData> mails=parseContact.emails;
try
{
// ADDING NAME
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME, null).build());
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, DisplayName) // Name of the person
.build());
//ADDING PHONES
for(RowData l : MobileNumbers)
{
{
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER,l.data)
.withValue(Phone.TYPE,l.type).build());
}
}
//ADDING MAILS
for(RowData a :mails)
{
{
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE, Email.CONTENT_ITEM_TYPE)
.withValue(Email.DATA,a.data)
.withValue(Email.TYPE, a.type).build());
}
}
//ADDING ADDRESSES
for(RowData add :Addresses)
{
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE,StructuredPostal.CONTENT_ITEM_TYPE)
.withValue(StructuredPostal.DATA,add.data)
.withValue(StructuredPostal.TYPE, add.type).build());
}
//ADDING ORGANISATIONS
for(OrgData org :Orgs)
{
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE,Organization.CONTENT_ITEM_TYPE)
.withValue(Organization.DATA,org.company)
.withValue(Organization.TYPE, org.type)
.withValue(Organization.TITLE, org.title)
.withValue(Organization.LABEL, org.customLabel)
.build());
}
//ADDING IMs
for(RowData IM :IMs)
{
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE,Im.CONTENT_ITEM_TYPE)
.withValue(Im.DATA,IM.data)
.withValue(Im.TYPE, IM.type).build());
}
//ADDING NOTES
if(Notes!=null && !Notes.equals(""))
{
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE,Note.CONTENT_ITEM_TYPE)
.withValue(Note.NOTE,Notes).build());
}
// ADDING PHOTO
if(dp!=null)
{
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE,Photo.CONTENT_ITEM_TYPE)
.withValue(Photo.PHOTO,dp).build());
}
//ADDING BIRTHDAY
if(BirthDay!=null && !BirthDay.equals(""))
{
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE,CommonDataKinds.Event.CONTENT_ITEM_TYPE)
.withValue(CommonDataKinds.Event.START_DATE,BirthDay)
.withValue(CommonDataKinds.Event.TYPE,CommonDataKinds.Event.TYPE_BIRTHDAY).build()); // Number of the person
}
cr.applyBatch(ContactsContract.AUTHORITY, ops);
}
catch (Exception e)
{
e.printStackTrace();
Toast.makeText(CO, "Exception: "+e.toString()+"Eebolra:" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
importStatus += parseContact.getParseLen();
}
db.close();
} while (ret > 0);
db.close();
} catch (Exception e) {
Toast.makeText(CO,"NO "+e.getMessage()+"-"+e.getLocalizedMessage()+"-"+e.toString(), Toast.LENGTH_SHORT).show();
}
} catch (FileNotFoundException e) {
}
}