android vcard3.0中的几个问题

an的haret 发布于 2013/10/17 10:10
阅读 271
收藏 0

我在android的机子上写的一段联系人备份成vcard格式文件,地址部分的type备份时是正确的,但是导入的时候却是错误的

String selection = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
        String []selectionArgs = {id , StructuredPostal.CONTENT_ITEM_TYPE};
        Cursor cursor = resolver.query(ContactsContract.Data.CONTENT_URI, null , selection, selectionArgs, null);
        Log.i("ADD","work----------- " + Contacts.ContactMethodsColumns.TYPE_WORK);
        Log.i("ADD","work----------- " + Contacts.ContactMethodsColumns.TYPE_HOME);
        if(cursor != null && cursor.moveToFirst()){
            do{
                String data = cursor.getString(cursor.getColumnIndex(StructuredPostal.DATA));
                int type = cursor.getInt(cursor.getColumnIndex(StructuredPostal.TYPE));
                String lable = cursor.getString(cursor.getColumnIndex(StructuredPostal.LABEL));
                int primary = cursor.getInt(cursor.getColumnIndex(StructuredPostal.IS_PRIMARY));
                address.add(new addInfo(type, data ,(primary != 0),lable));
                Log.i("ADD","222222222222=====" + type);//type有2个 1和2
            }while(cursor.moveToNext());
        }

上面是读地址信息

下面是写到vcard文件

List<addInfo> addlist = info.getAddress();
                if(addlist != null){
                    for(addInfo add : addlist){
                        Log.i("ADD","add type------------------" + add.type);//type有2个 1和2
                        struct.addContactmethod(Contacts.KIND_POSTAL, add.type, add.addressdata, add.position, true);
                        
                    }
                }

然后是从vcard文件读出来

case Contacts.KIND_POSTAL:
                        Log.i("ADD","method type-------------" + methodlist.get(m).type);
                        ContactsInfo.addInfo addresslist = new ContactsInfo.addInfo(method.type,method.data);//这个地方读到的type就变成全是1
                        add.add(addresslist);
                        break;

有没有人帮忙看下

加载中
返回顶部
顶部