2016-07-05 25 views
0

Dies ist mein Code Kontakt zu exsiting die Zustelladresse CodeWie Kontakt in exsting Kontakt-Update aktualisieren können postal

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(); 
      } 

     } 
    }); 

Ich bin aktualisieren Sie die Aufzeichnung Codierung btn_upcontacts listner aber nicht funktioniert, bitte helfen Sie mir

zu ändern

ich versuche, den viele Codes verwenden, aber nicht arbeiten

ich habe eine einfach den Text bearbeitet undd Updates auf den exsiting Kontakt der Postanschrift ohne SQLLite datbase Voraus in Dank

+0

bitte helfen Sie mir nicht zeigt Transaktion in Sandbox-Konto, was das Problem ist –

Antwort

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(); 
       } 
    }