Java 类android.provider.ContactsContract.CommonDataKinds.StructuredPostal 实例源码

项目:alerta-fraude    文件:ContactAccessorSdk5.java   
/**
 * Add an address to a list of database actions to be performed
 *
 * @param ops the list of database actions
 * @param address the item to be inserted
 */
private void insertAddress(ArrayList<ContentProviderOperation> ops,
        JSONObject address) {
    ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
            .withValue(ContactsContract.Data.MIMETYPE, CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
            .withValue(CommonDataKinds.StructuredPostal.TYPE, getAddressType(getJsonString(address, "type")))
            .withValue(CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS, getJsonString(address, "formatted"))
            .withValue(CommonDataKinds.StructuredPostal.STREET, getJsonString(address, "streetAddress"))
            .withValue(CommonDataKinds.StructuredPostal.CITY, getJsonString(address, "locality"))
            .withValue(CommonDataKinds.StructuredPostal.REGION, getJsonString(address, "region"))
            .withValue(CommonDataKinds.StructuredPostal.POSTCODE, getJsonString(address, "postalCode"))
            .withValue(CommonDataKinds.StructuredPostal.COUNTRY, getJsonString(address, "country"))
            .withValue(CommonDataKinds.StructuredPostal.LABEL, getJsonString(address, "type"))
            .build());
}
项目:alerta-fraude    文件:ContactAccessorSdk5.java   
/**
 * Converts a string from the W3C Contact API to it's Android int value.
 * @param string
 * @return Android int value
 */
private int getAddressType(String string) {
    int type = CommonDataKinds.StructuredPostal.TYPE_OTHER;
    if (string != null) {
        String lowerType = string.toLowerCase(Locale.getDefault());

        if ("work".equals(lowerType)) {
            return CommonDataKinds.StructuredPostal.TYPE_WORK;
        }
        else if ("other".equals(lowerType)) {
            return CommonDataKinds.StructuredPostal.TYPE_OTHER;
        }
        else if ("home".equals(lowerType)) {
            return CommonDataKinds.StructuredPostal.TYPE_HOME;
        }
        return CommonDataKinds.StructuredPostal.TYPE_CUSTOM;
    }
    return type;
}
项目:alerta-fraude    文件:ContactAccessorSdk5.java   
/**
 * getPhoneType converts an Android phone type into a string
 * @param type
 * @return phone type as string.
 */
private String getAddressType(int type) {
    String stringType;
    switch (type) {
    case CommonDataKinds.StructuredPostal.TYPE_HOME:
        stringType = "home";
        break;
    case CommonDataKinds.StructuredPostal.TYPE_WORK:
        stringType = "work";
        break;
    case CommonDataKinds.StructuredPostal.TYPE_OTHER:
    default:
        stringType = "other";
        break;
    }
    return stringType;
}
项目:alerta-fraude    文件:ContactAccessorSdk5.java   
/**
 * Add an address to a list of database actions to be performed
 *
 * @param ops the list of database actions
 * @param address the item to be inserted
 */
private void insertAddress(ArrayList<ContentProviderOperation> ops,
        JSONObject address) {
    ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
            .withValue(ContactsContract.Data.MIMETYPE, CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
            .withValue(CommonDataKinds.StructuredPostal.TYPE, getAddressType(getJsonString(address, "type")))
            .withValue(CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS, getJsonString(address, "formatted"))
            .withValue(CommonDataKinds.StructuredPostal.STREET, getJsonString(address, "streetAddress"))
            .withValue(CommonDataKinds.StructuredPostal.CITY, getJsonString(address, "locality"))
            .withValue(CommonDataKinds.StructuredPostal.REGION, getJsonString(address, "region"))
            .withValue(CommonDataKinds.StructuredPostal.POSTCODE, getJsonString(address, "postalCode"))
            .withValue(CommonDataKinds.StructuredPostal.COUNTRY, getJsonString(address, "country"))
            .withValue(CommonDataKinds.StructuredPostal.LABEL, getJsonString(address, "type"))
            .build());
}
项目:alerta-fraude    文件:ContactAccessorSdk5.java   
/**
 * Converts a string from the W3C Contact API to it's Android int value.
 * @param string
 * @return Android int value
 */
private int getAddressType(String string) {
    int type = CommonDataKinds.StructuredPostal.TYPE_OTHER;
    if (string != null) {
        String lowerType = string.toLowerCase(Locale.getDefault());

        if ("work".equals(lowerType)) {
            return CommonDataKinds.StructuredPostal.TYPE_WORK;
        }
        else if ("other".equals(lowerType)) {
            return CommonDataKinds.StructuredPostal.TYPE_OTHER;
        }
        else if ("home".equals(lowerType)) {
            return CommonDataKinds.StructuredPostal.TYPE_HOME;
        }
        return CommonDataKinds.StructuredPostal.TYPE_CUSTOM;
    }
    return type;
}
项目:alerta-fraude    文件:ContactAccessorSdk5.java   
/**
 * getPhoneType converts an Android phone type into a string
 * @param type
 * @return phone type as string.
 */
private String getAddressType(int type) {
    String stringType;
    switch (type) {
    case CommonDataKinds.StructuredPostal.TYPE_HOME:
        stringType = "home";
        break;
    case CommonDataKinds.StructuredPostal.TYPE_WORK:
        stringType = "work";
        break;
    case CommonDataKinds.StructuredPostal.TYPE_OTHER:
    default:
        stringType = "other";
        break;
    }
    return stringType;
}
项目:mc_backup    文件:ContactService.java   
private ContentValues createAddressContentValues(final JSONObject address, final int typeConstant,
                                                 final String type) throws JSONException {
    ContentValues contentValues = new ContentValues();
    contentValues.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
    contentValues.put(StructuredPostal.STREET, address.optString("streetAddress"));
    contentValues.put(StructuredPostal.CITY, address.optString("locality"));
    contentValues.put(StructuredPostal.REGION, address.optString("region"));
    contentValues.put(StructuredPostal.POSTCODE, address.optString("postalCode"));
    contentValues.put(StructuredPostal.COUNTRY, address.optString("countryName"));

    if (type != null) {
        contentValues.put(StructuredPostal.TYPE, typeConstant);

        // If a custom type, add a label
        if (typeConstant == BaseTypes.TYPE_CUSTOM) {
            contentValues.put(StructuredPostal.LABEL, type);
        }
    }

    if (address.has("pref")) {
        contentValues.put(Data.IS_SUPER_PRIMARY, address.getBoolean("pref") ? 1 : 0);
    }

    return contentValues;
}
项目:mc_backup    文件:ContactService.java   
private void initColumnNameConstantsMap() {
    if (mColumnNameConstantsMap != null) {
        return;
    }
    mColumnNameConstantsMap = new HashMap<String, String>();

    mColumnNameConstantsMap.put("name", StructuredName.DISPLAY_NAME);
    mColumnNameConstantsMap.put("givenname", StructuredName.GIVEN_NAME);
    mColumnNameConstantsMap.put("familyname", StructuredName.FAMILY_NAME);
    mColumnNameConstantsMap.put("honorificprefix", StructuredName.PREFIX);
    mColumnNameConstantsMap.put("honorificsuffix", StructuredName.SUFFIX);
    mColumnNameConstantsMap.put("additionalname", CUSTOM_DATA_COLUMN);
    mColumnNameConstantsMap.put("nickname", Nickname.NAME);
    mColumnNameConstantsMap.put("adr", StructuredPostal.STREET);
    mColumnNameConstantsMap.put("email", Email.ADDRESS);
    mColumnNameConstantsMap.put("url", Website.URL);
    mColumnNameConstantsMap.put("category", GroupMembership.GROUP_ROW_ID);
    mColumnNameConstantsMap.put("tel", Phone.NUMBER);
    mColumnNameConstantsMap.put("org", Organization.COMPANY);
    mColumnNameConstantsMap.put("jobTitle", Organization.TITLE);
    mColumnNameConstantsMap.put("note", Note.NOTE);
    mColumnNameConstantsMap.put("impp", Im.DATA);
    mColumnNameConstantsMap.put("sex", CUSTOM_DATA_COLUMN);
    mColumnNameConstantsMap.put("genderidentity", CUSTOM_DATA_COLUMN);
    mColumnNameConstantsMap.put("key", CUSTOM_DATA_COLUMN);
}
项目:ntsync-android    文件:ContactOperations.java   
public ContactOperations updateAddress(String city, String country,
        String neighborhood, String pobox, String postcode, String region,
        String street, String label, boolean isPrimary,
        boolean isSuperPrimary, Uri uri) {
    mValues.clear();
    mValues.put(StructuredPostal.CITY, city);
    mValues.put(StructuredPostal.COUNTRY, country);
    mValues.put(StructuredPostal.NEIGHBORHOOD, neighborhood);
    mValues.put(StructuredPostal.POBOX, pobox);
    mValues.put(StructuredPostal.POSTCODE, postcode);
    mValues.put(StructuredPostal.REGION, region);
    mValues.put(StructuredPostal.STREET, street);
    mValues.put(StructuredPostal.LABEL, label);

    mValues.put(StructuredPostal.IS_PRIMARY, isPrimary ? 1 : 0);
    mValues.put(StructuredPostal.IS_SUPER_PRIMARY, isSuperPrimary ? 1 : 0);
    addUpdateOp(uri);
    return this;
}
项目:SafeSlinger-Android    文件:ContactAccessorApi5.java   
@Override
public boolean addPostal(ContactStruct contact, Cursor postals, boolean removeMatches) {
    String address = postals.getString(postals
            .getColumnIndex(StructuredPostal.FORMATTED_ADDRESS));
    String poBox = postals.getString(postals.getColumnIndex(StructuredPostal.POBOX));
    String street = postals.getString(postals.getColumnIndex(StructuredPostal.STREET));
    String nbrhood = postals.getString(postals.getColumnIndex(StructuredPostal.NEIGHBORHOOD));
    String city = postals.getString(postals.getColumnIndex(StructuredPostal.CITY));
    String state = postals.getString(postals.getColumnIndex(StructuredPostal.REGION));
    String postCode = postals.getString(postals.getColumnIndex(StructuredPostal.POSTCODE));
    String country = postals.getString(postals.getColumnIndex(StructuredPostal.COUNTRY));
    String label = postals.getString(postals.getColumnIndexOrThrow(StructuredPostal.LABEL));
    int type = postals.getInt(postals.getColumnIndexOrThrow(StructuredPostal.TYPE));
    boolean primary = (postals.getInt(postals
            .getColumnIndexOrThrow(StructuredPostal.IS_PRIMARY)) != 0);

    if (!TextUtils.isEmpty(address)
            && isPostalNew(contact, address, poBox, street, nbrhood, city, state, postCode,
                    type, removeMatches)) {
        contact.addAddress(type, address, poBox, nbrhood, street, city, state, postCode,
                country, label, primary);
        return true;
    }
    return false;
}
项目:SafeSlinger-Android    文件:ContactAccessorApi5.java   
private ContentValues valuesPostal(Address postal) {
    ContentValues val = new ContentValues();
    val.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
    val.put(StructuredPostal.POBOX, postal.getPoBox());
    val.put(StructuredPostal.NEIGHBORHOOD, postal.getExtended());
    val.put(StructuredPostal.STREET, postal.getStreet());
    val.put(StructuredPostal.CITY, postal.getCity());
    val.put(StructuredPostal.REGION, postal.getState());
    val.put(StructuredPostal.POSTCODE, postal.getPostalCode());
    val.put(StructuredPostal.COUNTRY, postal.getCountry());
    val.put(StructuredPostal.FORMATTED_ADDRESS, postal.toString());
    val.put(StructuredPostal.IS_PRIMARY, postal.isPrimary() ? 1 : 0);
    val.put(StructuredPostal.LABEL, postal.getLabel());
    val.put(StructuredPostal.TYPE, postal.getType());
    return val;
}
项目:SafeSlinger-Android    文件:ContactAccessorApi5.java   
private boolean updatePostal(Address postal, String rawContactId, Context ctx) {

        // seek for raw contact + formatted address = same
        String[] proj = new String[] {
                StructuredPostal.RAW_CONTACT_ID, Data.MIMETYPE, StructuredPostal.FORMATTED_ADDRESS
        };
        String where = StructuredPostal.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=? AND "
                + StructuredPostal.FORMATTED_ADDRESS + "=?";
        String[] args = new String[] {
                rawContactId, StructuredPostal.CONTENT_ITEM_TYPE, postal.toString()
        };
        ContentValues values = valuesPostal(postal);
        values.put(StructuredPostal.RAW_CONTACT_ID, rawContactId);

        return updateDataRow(ctx, proj, where, args, values);
    }
项目:react-native-paged-contacts    文件:PostalAddress.java   
private void fillFromCursor() {
    Integer type = getInt(StructuredPostal.TYPE);
    label = getType(type, getString(StructuredPostal.LABEL));
    formattedAddress = getString(StructuredPostal.FORMATTED_ADDRESS);
    poBox = getString(StructuredPostal.POBOX);
    street = getString(StructuredPostal.STREET);
    neighborhood = getString(StructuredPostal.NEIGHBORHOOD);
    city = getString(StructuredPostal.CITY);
    region = getString(StructuredPostal.REGION);
    postcode = getString(StructuredPostal.POSTCODE);
    country = getString(StructuredPostal.COUNTRY);
}
项目:react-native-paged-contacts    文件:PostalAddress.java   
private String getType(Integer type, String label) {
    if (type == null) {
        throw new InvalidCursorTypeException();
    }
    switch (type) {
        case StructuredPostal.TYPE_HOME:
            return "home";
        case StructuredPostal.TYPE_WORK:
            return "work";
        case StructuredPostal.TYPE_OTHER:
            return "other";
        default:
            return label;
    }
}
项目:mc_backup    文件:ContactService.java   
private void initAddressTypesMap() {
    if (mAddressTypesMap != null) {
        return;
    }
    mAddressTypesMap = new HashMap<String, Integer>();

    mAddressTypesMap.put("home", StructuredPostal.TYPE_HOME);
    mAddressTypesMap.put("work", StructuredPostal.TYPE_WORK);
}
项目:ntsync-android    文件:ContactOperations.java   
public ContactOperations addAddress(String city, String country,
        String label, int androidAddressType, String neighborhood,
        String pobox, String postcode, String region, String street,
        boolean isPrimary, boolean isSuperPrimary) {
    mValues.clear();
    mValues.put(StructuredPostal.CITY, city);
    mValues.put(StructuredPostal.COUNTRY, country);
    mValues.put(StructuredPostal.MIMETYPE,
            StructuredPostal.CONTENT_ITEM_TYPE);
    if (!TextUtils.isEmpty(label)) {
        mValues.put(StructuredPostal.LABEL, label);
    }

    if (isSuperPrimary) {
        mValues.put(Email.IS_SUPER_PRIMARY, 1);
    }
    if (isPrimary) {
        mValues.put(Email.IS_PRIMARY, 1);
    }
    mValues.put(StructuredPostal.NEIGHBORHOOD, neighborhood);
    mValues.put(StructuredPostal.POBOX, pobox);
    mValues.put(StructuredPostal.POSTCODE, postcode);
    mValues.put(StructuredPostal.REGION, region);
    mValues.put(StructuredPostal.STREET, street);

    addInsertOp();
    return this;
}
项目:ntsync-android    文件:ContactManager.java   
public static int getAndroidAddressType(AddressType type) {
    switch (type) {
    case TYPE_CUSTOM:
        return StructuredPostal.TYPE_CUSTOM;
    case TYPE_HOME:
        return StructuredPostal.TYPE_HOME;
    case TYPE_OTHER:
        return StructuredPostal.TYPE_OTHER;
    case TYPE_WORK:
        return StructuredPostal.TYPE_WORK;
    default:
        return StructuredPostal.TYPE_OTHER;
    }
}
项目:ntsync-android    文件:ContactManager.java   
public static AddressType getAddressType(int androidType) {
    switch (androidType) {
    case StructuredPostal.TYPE_CUSTOM:
        return AddressType.TYPE_CUSTOM;
    case StructuredPostal.TYPE_HOME:
        return AddressType.TYPE_HOME;
    case StructuredPostal.TYPE_OTHER:
        return AddressType.TYPE_OTHER;
    case StructuredPostal.TYPE_WORK:
        return AddressType.TYPE_WORK;
    default:
        return AddressType.TYPE_OTHER;
    }
}
项目:CucumberSync    文件:LocalAddressBook.java   
protected void populatePostalAddresses(Contact c) throws RemoteException {
    @Cleanup Cursor cursor = providerClient.query(dataURI(), new String[] {
            /* 0 */ StructuredPostal.FORMATTED_ADDRESS, StructuredPostal.TYPE, StructuredPostal.LABEL,
            /* 3 */ StructuredPostal.STREET, StructuredPostal.POBOX, StructuredPostal.NEIGHBORHOOD,
            /* 6 */ StructuredPostal.CITY, StructuredPostal.REGION, StructuredPostal.POSTCODE,
            /* 9 */ StructuredPostal.COUNTRY
        }, StructuredPostal.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=?",
        new String[] { String.valueOf(c.getLocalID()), StructuredPostal.CONTENT_ITEM_TYPE }, null);
    while (cursor != null && cursor.moveToNext()) {
        Address address = new Address();

        address.setLabel(cursor.getString(0));
        switch (cursor.getInt(1)) {
        case StructuredPostal.TYPE_HOME:
            address.addType(AddressType.HOME);
            break;
        case StructuredPostal.TYPE_WORK:
            address.addType(AddressType.WORK);
            break;
        case StructuredPostal.TYPE_CUSTOM:
            String customType = cursor.getString(2);
            if (!StringUtils.isEmpty(customType))
                address.addType(AddressType.get(labelToXName(customType)));
            break;
        }
        address.setStreetAddress(cursor.getString(3));
        address.setPoBox(cursor.getString(4));
        address.setExtendedAddress(cursor.getString(5));
        address.setLocality(cursor.getString(6));
        address.setRegion(cursor.getString(7));
        address.setPostalCode(cursor.getString(8));
        address.setCountry(cursor.getString(9));
        c.getAddresses().add(address);
    }
}
项目:SafeSlinger-Android    文件:SlingerFragment.java   
private String getStructuredPostalTypeLabel(int type, String label) {
    switch (type) {
        case StructuredPostal.TYPE_HOME:
            return getString(R.string.label_hometag);
        case StructuredPostal.TYPE_WORK:
            return getString(R.string.label_worktag);
        case StructuredPostal.TYPE_OTHER:
            return getString(R.string.label_othertag);
        default:
            return StructuredPostal.getTypeLabel(this.getResources(), type, label).toString();
    }
}
项目:SafeSlinger-Android    文件:ContactAccessorApi5.java   
@Override
public String[] getProjPostal() {
    return new String[] {
            StructuredPostal.MIMETYPE, StructuredPostal.TYPE, StructuredPostal.IS_PRIMARY,
            StructuredPostal.LABEL, StructuredPostal.POBOX, StructuredPostal.STREET,
            StructuredPostal.CITY, StructuredPostal.REGION, StructuredPostal.POSTCODE,
            StructuredPostal.COUNTRY, StructuredPostal.NEIGHBORHOOD,
            StructuredPostal.FORMATTED_ADDRESS
    };
}
项目:JCB    文件:ContactUtils.java   
private String getAddress(String contactId) {
    Cursor cursor = cr.query(
            ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
            null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "
                    + contactId, null, null);
    if (cursor.moveToFirst()) {
        // �������еĵ�ַ
        String street = cursor
                .getString(cursor
                        .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
        String city = cursor
                .getString(cursor
                        .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
        String country = cursor
                .getString(cursor
                        .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
        if (country == null) {
            country = "";
        }
        if (street == null) {
            street = "";
        }
        if (city == null) {
            city = "";
        }
        cursor.close();
        return country + city + street;
    } else {
        cursor.close();
        return "";
    }

}
项目:haxsync    文件:ContactUtil.java   
public static void removeContactLocations(Context c, Account account){
    ContactsSyncAdapterService.mContentResolver = c.getContentResolver();
    HashMap<String, ContactsSyncAdapterService.SyncEntry> localContacts = ContactsSyncAdapterService.getLocalContacts(account);
    for (ContactsSyncAdapterService.SyncEntry s : localContacts.values()){
        ContactsSyncAdapterService.mContentResolver.delete(ContactsContract.Data.CONTENT_URI, ContactsContract.Data.MIMETYPE + " = '" + ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE + "' AND " + ContactsContract.Data.RAW_CONTACT_ID + " = " + s.raw_id, null); 
    }           

}
项目:haxsync    文件:ContactUtil.java   
public static void updateContactLocation(long rawContactId, String location){
    if ((location == null || location.equals(""))){
        return;
    }
    String where = ContactsContract.Data.RAW_CONTACT_ID + " = '" + rawContactId
            + "' AND " + ContactsContract.Data.MIMETYPE + " = '" + StructuredPostal.CONTENT_ITEM_TYPE + "'";
    String[] projection = {StructuredPostal.FORMATTED_ADDRESS};

    Cursor cursor = ContactsSyncAdapterService.mContentResolver.query(ContactsContract.Data.CONTENT_URI, projection, where, null, null);
    boolean insert = false;
    if (cursor.getCount() == 0){
        insert = true;
    } else{
        cursor.moveToFirst();
        String oldloc = cursor.getString(cursor.getColumnIndex(StructuredPostal.FORMATTED_ADDRESS));
        if ((oldloc == null) || (!oldloc.equals(location))){
            ContactsSyncAdapterService.mContentResolver.delete(ContactsContract.Data.CONTENT_URI, where, null);
            insert = true;
        }
    }
    cursor.close();
    if (insert){
        ContentValues contentValues = new ContentValues();
        //op.put(ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID, );
        contentValues.put(ContactsContract.Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
        contentValues.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
        contentValues.put(StructuredPostal.FORMATTED_ADDRESS, location);
        try {
            ContactsSyncAdapterService.mContentResolver.insert(ContactsContract.Data.CONTENT_URI, contentValues);
            //  mContentResolver.applyBatch(ContactsContract.AUTHORITY, operationList);
        } catch (Exception e) {
            e.printStackTrace();
            //Log.e("ERROR:" , e.^);
        }
    }

}
项目:mc_backup    文件:ContactService.java   
private int getAddressType(String addressType) {
    initAddressTypesMap();
    Integer type = mAddressTypesMap.get(addressType.toLowerCase());
    return type != null ? type : StructuredPostal.TYPE_CUSTOM;
}
项目:CucumberSync    文件:LocalAddressBook.java   
protected Builder buildAddress(Builder builder, Address address) {
    /*  street po.box (extended)
     *  region
     *  postal code city
     *  country
     */
    String formattedAddress = address.getLabel();
    if (StringUtils.isEmpty(formattedAddress)) {
        String  lineStreet = StringUtils.join(new String[] { address.getStreetAddress(), address.getPoBox(), address.getExtendedAddress() }, " "),
                lineLocality = StringUtils.join(new String[] { address.getPostalCode(), address.getLocality() }, " ");

        List<String> lines = new LinkedList<String>();
        if (lineStreet != null)
            lines.add(lineStreet);
        if (address.getRegion() != null && !address.getRegion().isEmpty())
            lines.add(address.getRegion());
        if (lineLocality != null)
            lines.add(lineLocality);

        formattedAddress = StringUtils.join(lines, "\n");
    }

    int typeCode = 0;
    String typeLabel = null;
    for (AddressType type : address.getTypes())
        if (type == AddressType.HOME)
            typeCode = StructuredPostal.TYPE_HOME;
        else if (type == AddressType.WORK)
            typeCode = StructuredPostal.TYPE_WORK;
    if (typeCode == 0)
        if (address.getTypes().isEmpty())
            typeCode = StructuredPostal.TYPE_OTHER;
        else {
            typeCode = StructuredPostal.TYPE_CUSTOM;
            typeLabel = xNameToLabel(address.getTypes().iterator().next().getValue());
        }

    builder = builder
        .withValue(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE)
        .withValue(StructuredPostal.FORMATTED_ADDRESS, formattedAddress)
        .withValue(StructuredPostal.TYPE, typeCode)
        .withValue(StructuredPostal.STREET, address.getStreetAddress())
        .withValue(StructuredPostal.POBOX, address.getPoBox())
        .withValue(StructuredPostal.NEIGHBORHOOD, address.getExtendedAddress())
        .withValue(StructuredPostal.CITY, address.getLocality())
        .withValue(StructuredPostal.REGION, address.getRegion())
        .withValue(StructuredPostal.POSTCODE, address.getPostalCode())
        .withValue(StructuredPostal.COUNTRY, address.getCountry());
    if (typeLabel != null)
        builder = builder.withValue(StructuredPostal.LABEL, typeLabel);
    return builder;
}
项目:SafeSlinger-Android    文件:ContactAccessorApi5.java   
@Override
public String getQueryPostal() {
    return StructuredPostal.MIMETYPE + " = "
            + DatabaseUtils.sqlEscapeString("" + StructuredPostal.CONTENT_ITEM_TYPE);
}
项目:haxsync    文件:ContactUtil.java   
public static void updateContactLocation(long rawContactId, String country, String region, String city){
    if ((country == null || country.equals("")) && (region == null || region.equals("")) && (city == null || city.equals(""))){
        return;
    }
    String where = ContactsContract.Data.RAW_CONTACT_ID + " = '" + rawContactId 
            + "' AND " + ContactsContract.Data.MIMETYPE + " = '" + ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE + "'";
    String[] projection = {ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY, ContactsContract.CommonDataKinds.StructuredPostal.REGION, ContactsContract.CommonDataKinds.StructuredPostal.CITY};

    Cursor cursor = ContactsSyncAdapterService.mContentResolver.query(ContactsContract.Data.CONTENT_URI, projection, where, null, null);
    boolean insert = false;
    if (cursor.getCount() == 0){
        insert = true; 
    } else{
        cursor.moveToFirst();
        String oldCountry = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
        String oldRegion = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
        String oldCity = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
        if ((oldCountry != null && !oldCountry.equals(country)) || (oldRegion != null && !oldRegion.equals(region)) || (oldCity != null && oldCity.equals(city))){
            ContactsSyncAdapterService.mContentResolver.delete(ContactsContract.Data.CONTENT_URI, where, null);
            insert = true;
        }
    }
    cursor.close();
    if (insert){
        ContentValues contentValues = new ContentValues();
        //op.put(ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID, );
        contentValues.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE);
        contentValues.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
        if (country != null && ! country.equals("")){
            contentValues.put(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY, country);
        } if (region != null && ! region.equals("")){
        contentValues.put(ContactsContract.CommonDataKinds.StructuredPostal.REGION, region);
        } if (city != null && ! city.equals("")){
        contentValues.put(ContactsContract.CommonDataKinds.StructuredPostal.CITY, city);
        }
        try {
            ContactsSyncAdapterService.mContentResolver.insert(ContactsContract.Data.CONTENT_URI, contentValues);
        //  mContentResolver.applyBatch(ContactsContract.AUTHORITY, operationList);
        } catch (Exception e) {
            e.printStackTrace();
            //Log.e("ERROR:" , e.^);
        }
    }

}