如何更新联系人的联系人更新到postaladdress

时间:2016-07-05 08:44:53

标签: contact

这是我的联系以更改邮政地址代码的代码

ops = new ArrayList<ContentProviderOperation>();
rawContactID = ops.size(); 
 ///Insert code are working/////

ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,rawContactID)
.withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.StructuredPostal.STREET,addr)
.withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                 .withValue(ContactsContract.CommonDataKinds.StructuredPostal.CITY, edtcity.getText().toString())

                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE, edtpostcode.getText().toString())
enter code here
                   `enter code here` .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY, edtcountry.getText().toString()).build());

                  //// I am trying this update record code but not working///



 btn_upcontacts.setOnClickListener(new OnClickListener() {


        @Override
        public void onClick(View view) {
            ops.add(ContentProviderOperation
                    .newUpdate(ContactsContract.Data.CONTENT_URI)

                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactID)
                    .withSelection(String.valueOf(CONTENT_URI), new String[]{CommonDataKinds.StructuredPostal.RAW_CONTACT_ID + " = " + rawContactID})
                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.StructuredPostal.STREET, addr)

                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactID)
                    .withSelection(String.valueOf(CONTENT_URI), new String[]{CommonDataKinds.StructuredPostal.RAW_CONTACT_ID + " = " + rawContactID})
                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.StructuredPostal.CITY, scity)

                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactID)
                    .withSelection(String.valueOf(CONTENT_URI), new String[]{CommonDataKinds.StructuredPostal.RAW_CONTACT_ID + " = " + rawContactID})
                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE, scode)

                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactID)
                    .withSelection(String.valueOf(CONTENT_URI), new String[]{CommonDataKinds.StructuredPostal.RAW_CONTACT_ID + " = " + rawContactID})
                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY,scountry)

                    .build());



            try {
                getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
            } catch (RemoteException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (OperationApplicationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    });

我将记录编码更新为btn_upcontacts列表器但不能正常工作,请帮帮我

我正在尝试使用许多代码但不能正常工作

我有一个简单的编辑文本和更新到现有的联系邮政地址没有sqllite数据库 感谢先生

1 个答案:

答案 0 :(得分:0)

      int _contact_id = 10110; // your Conatct id
     Uri rawContactUri = null;
    Cursor rawContactCursor = null;
    try {
        // if some fields not available use rawContactUri as ID
        rawContactUri = null;
        rawContactCursor = context.getContentResolver().query(
               ContactsContract.RawContacts.CONTENT_URI,
               new String[]{ContactsContract.RawContacts._ID},
               ContactsContract.RawContacts.CONTACT_ID + " = " + _contact_id,
               null,
               null);

       if (!rawContactCursor.isAfterLast()) {
            rawContactCursor.moveToFirst();
            rawContactUri = ContactsContract.RawContacts.CONTENT_URI.buildUpon().appendPath("" + rawContactCursor.getLong(0)).build();
         }

        rawContactCursor.close();
       } catch (Exception e) {
           e.printStackTrace();
  } finally {
     if (rawContactCursor != null) {
          rawContactCursor.close();
   }
 }


 Boolean noAddress = true;
      Cursor currAddr = null;
                try {
                    Uri URI_ADDRESS = ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI;
                    String SELECTION_ADDRESS = ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + " = ? AND " +
                            ContactsContract.CommonDataKinds.StructuredPostal.MIMETYPE + " = ?";
                    String[] SELECTION_ARRAY_ADDRESS = new String[]{
                            String.valueOf(_contact_id),
                            ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE};
                    currAddr = context.getContentResolver().query(URI_ADDRESS, null, SELECTION_ADDRESS, SELECTION_ARRAY_ADDRESS, null);
                    if (currAddr.getCount() > 0) {
                        currAddr.moveToFirst();

                        while (!currAddr.isAfterLast()) {
                            noAddress = false;
                            currAddr.moveToNext();
                        }
                    } else {
                        noAddress = true;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    if (currAddr != null) {
                        currAddr.close();
                    }
                }

                if (noAddress) {
                        // address is not available
                             try {
                                String street_name = "strt";
                                String number ="num";
                                String apartment = "app";
                                String postal_code = "7777";
                                String state ="state";
                                String city = "cityty";
                                String country = "countrrry";

                                    ContentValues adrsValues = new ContentValues();
                                    adrsValues.put(ContactsContract.Data.RAW_CONTACT_ID, ContentUris.parseId(rawContactUri));
                                    adrsValues.put(ContactsContract.CommonDataKinds.StructuredPostal.TYPE, "1");
                                    adrsValues.put(ContactsContract.CommonDataKinds.StructuredPostal.STREET,
                                            (street_name.length() > 0 || number.length() > 0) ? number + " " + street_name : number + " " + street_name);

                                    adrsValues.put(ContactsContract.CommonDataKinds.StructuredPostal.NEIGHBORHOOD,
                                            (apartment.length() > 0) ? apartment : "");
                                    adrsValues.put(ContactsContract.CommonDataKinds.StructuredPostal.CITY,
                                            (city.length() > 0) ? city : "");
                                    adrsValues.put(ContactsContract.CommonDataKinds.StructuredPostal.REGION,
                                            (state.length() > 0) ? state : "");
                                    adrsValues.put(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE,
                                            (postal_code.length() > 0) ? postal_code : "");
                                    adrsValues.put(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY,
                                            (country.length() > 0) ? country : "");
                                    adrsValues.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE);
                                    context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, adrsValues);

                            } catch (Exception e) {
                                isError = true;
                                e.printStackTrace();
                            }

                } else {
                // address is already available
                try {
                        String street_name = "strt";
                        String number ="num";
                        String apartment = "app";
                        String postal_code = "7777";
                        String state ="state";
                        String city = "cityty";
                       String country = "countrrry";

                    ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                                            .withSelection(where1, AryStructuredAdd1)
                                            .withValue(ContactsContract.CommonDataKinds.StructuredPostal.STREET,
                                                    (street_name.length() > 0 || number.length() > 0) ? number + " " + street_name : number + " " + street_name)
                                            .withValue(ContactsContract.CommonDataKinds.StructuredPostal.NEIGHBORHOOD,
                                                    (apartment.length() > 0) ? apartment : "")
                                            .withValue(ContactsContract.CommonDataKinds.StructuredPostal.CITY,
                                                    (city.length() > 0) ? city : "")
                                            .withValue(ContactsContract.CommonDataKinds.StructuredPostal.REGION,
                                                    (state.length() > 0) ? state : "")
                                            .withValue(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE,
                                                    (postal_code.length() > 0) ? postal_code : "")
                                            .withValue(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY,
                                                    (country.length() > 0) ? country : "")
                                            .build());
                } catch (Exception e) {
                    isError = true;
                     e.printStackTrace();
              }
    }