[android-developers] Re: Unable to Update a Contact Phone number
I see only the difference from my code (which is working) DELETE is that instead of putting Phones.CONTENT_URI put Contacts.Phones.CONTENT_URI UPDATE provide to the update method phoneId, get uri and call update: phoneUri = ContentUris.withAppendedId(Contacts.Phones.CONTENT_URI, phoneId); row = getContentResolver().update(phoneUri,values, null, null); PS Append Contacts to all Phones entries: Contacts.Phones ildus --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~--~~~~--~~--~--~---
[android-developers] Re: Unable to Update a Contact Phone number
Hi ildus, Thanks for the response! I tried your solutions and the update still does not take place. I get row = 0 for both delete and update , meaning no rows were updated. If I can just get one of them to work - either delete or update, it would be sufficient to me. So your able to delete existing phone numbers of a contact record and update existing number type and value right? I was wondering if you did your test on the emulator or the phone? And on what version of the SDK. Kindly let me know. Thanks, Sam On Feb 24, 11:12 am, rex wrote: > I see only the difference from my code (which is working) > DELETE > is that instead of putting Phones.CONTENT_URI put > Contacts.Phones.CONTENT_URI > > UPDATE > provide to theupdatemethod phoneId, get uri and callupdate: > phoneUri = ContentUris.withAppendedId(Contacts.Phones.CONTENT_URI, > phoneId); > row = getContentResolver().update(phoneUri,values, null, null); > > PS Append Contacts to all Phones entries: Contacts.Phones > > ildus --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~--~~~~--~~--~--~---
[android-developers] Re: Unable to Update a Contact Phone number
Sam, I think the problem is how you created the contact entry. Try this method to create contact replace CallCardProvider object with yours actual parameters. Then try delete or update this entry using methods above. Hope it helps. Ildus //Create Contact // public long createContactEntry(CallCardProvider ccp) { ContentValues values = new ContentValues(); Uri phoneUri = null; values.put(Contacts.People.NAME, mCtx.getText (R.string.nameStartWith)+" "+ccp.getName()); //1 = the new contact is added to favorites //0 = the new contact is not added to favorites values.put(Contacts.People.STARRED,0); values.put(People.NOTES, ccp.getPostNumber()); //Add Phone Numbers Uri uri = this.mCtx.getContentResolver().insert (Contacts.People.CONTENT_URI, values); long contactId = Long.parseLong(uri.getLastPathSegment()); Log.i(TAG,"UriPeople="+uri.toString()+" id created="+contactId); phoneUri = Uri.withAppendedPath(uri, Contacts.People.Phones.CONTENT_DIRECTORY); Log.i(TAG, "phoneUri="+phoneUri.toString()); values.clear(); values.put(Contacts.Phones.TYPE, Phones.TYPE_CUSTOM);//.TYPE_MOBILE); values.put(Contacts.Phones.LABEL, ccp.getNotes()); values.put(Contacts.Phones.NUMBER, ccp.getNumber());//.split(",") [0]); Uri phone = mCtx.getContentResolver().insert(phoneUri, values); long phoneId = Long.parseLong(phone.getLastPathSegment()); Log.i(TAG, "Phone created="+phone.toString()); Uri groupMember = Contacts.GroupMembership.CONTENT_URI; Uri group = Contacts.Groups.CONTENT_URI; Cursor c = mCtx.getContentResolver().query(group, new String[] {Groups._ID}, Groups.NAME+"='"+Groups.GROUP_MY_CONTACTS+"'", null, null); long groupId = 0; if(c.getCount()>0 && c.moveToFirst()) groupId = c.getLong(c.getColumnIndex(Groups._ID)); c.close(); if(groupId ==0) { Log.e(TAG, "groupId=0 Insert to group is skipped"); return phoneId; } values.clear(); values.put(Contacts.GroupMembership.PERSON_ID, contactId); values.put(Contacts.GroupMembership.GROUP_ID, groupId); groupMember = mCtx.getContentResolver().insert(groupMember, values); Log.i(TAG, "groupMemberUri = "+groupMember.toString()); return phoneId; } --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~--~~~~--~~--~--~---
[android-developers] Re: Unable to Update a Contact Phone number
Hi ildus, Thanks for the sample! I was able to get update to work and figure out where we differ. I was using the personID to do multiple deletes or updates. The logic was similar to query where we use the Person id to query the phone database for multiple phone records that are associated with the Person. Unfortunately what works for query does not work for update or delete. For update or delete we have to use the Phone ID to access the single row in the phone database to delete or update. So now I do a query using PersonID and get all the phone records for the person. Then I get each record's PhoneID and use it to update individual rows in the phone database. This approach works. Kindly let me know if there is a better approach. Thanks for all the help. Sam On Feb 24, 4:21 pm, rex wrote: > Sam, > > I think the problem is how you created thecontactentry. Try this > method to createcontact > replace CallCardProvider object with yours actual parameters. Then try > delete orupdatethis entry using methods above. > Hope it helps. > > Ildus > //CreateContact// > public long createContactEntry(CallCardProvider ccp) { > ContentValues values = new ContentValues(); > Uri phoneUri = null; > > values.put(Contacts.People.NAME, mCtx.getText > (R.string.nameStartWith)+" "+ccp.getName()); > //1 = the newcontactis added to favorites > //0 = the newcontactis not added to favorites > values.put(Contacts.People.STARRED,0); > values.put(People.NOTES, ccp.getPostNumber()); > > //AddPhoneNumbers > Uri uri = this.mCtx.getContentResolver().insert > (Contacts.People.CONTENT_URI, values); > > long contactId = Long.parseLong(uri.getLastPathSegment()); > Log.i(TAG,"UriPeople="+uri.toString()+" id > created="+contactId); > phoneUri = Uri.withAppendedPath(uri, > Contacts.People.Phones.CONTENT_DIRECTORY); > Log.i(TAG, "phoneUri="+phoneUri.toString()); > values.clear(); > values.put(Contacts.Phones.TYPE, > Phones.TYPE_CUSTOM);//.TYPE_MOBILE); > values.put(Contacts.Phones.LABEL, ccp.getNotes()); > values.put(Contacts.Phones.NUMBER, > ccp.getNumber());//.split(",") > [0]); > Uriphone= mCtx.getContentResolver().insert(phoneUri, values); > long phoneId = Long.parseLong(phone.getLastPathSegment()); > Log.i(TAG, "Phonecreated="+phone.toString()); > Uri groupMember = Contacts.GroupMembership.CONTENT_URI; > Uri group = Contacts.Groups.CONTENT_URI; > Cursor c = mCtx.getContentResolver().query(group, new String[] > {Groups._ID}, > > Groups.NAME+"='"+Groups.GROUP_MY_CONTACTS+"'", null, null); > long groupId = 0; > if(c.getCount()>0 && c.moveToFirst()) > groupId = c.getLong(c.getColumnIndex(Groups._ID)); > c.close(); > if(groupId ==0) { > Log.e(TAG, "groupId=0 Insert to group is skipped"); > return phoneId; > } > values.clear(); > values.put(Contacts.GroupMembership.PERSON_ID, contactId); > values.put(Contacts.GroupMembership.GROUP_ID, groupId); > groupMember = mCtx.getContentResolver().insert(groupMember, > values); > Log.i(TAG, "groupMemberUri = "+groupMember.toString()); > return phoneId; > } --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~--~~~~--~~--~--~---
[android-developers] Re: Unable to Update a Contact Phone number
Hi Sam, You are talking about batch update? But I don't see the point why you need to update all phones belong to person in one shot with the same values? I would return from method getPerson(long personId) domain object Person with reference to the List of Phones objects or List of PhoneIds and then if need update/delete use specific phoneId from the list (no need extra call to db to get person) Ildus --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~--~~~~--~~--~--~---