• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Help My contact card issues

dango

Lurker
Apr 27, 2010
3
0
Hi, and thanks for so many extremely useful posts :)

My "My contact card" (top of the list in people) only has my facebook data, and the contact with all my details (address, gmail, IMs etc) can't be linked to my facebook... Is there a simple fix to enable me to bring all my contact details into one place without having to delete my existing stuff and key it all into my "My contact card"?

I think the contact linking functionality is awesome and it's sorted my contacts list right out... now I want to do the same for myself :p

Cheers, dango
 
I have contacted HTC on this issue and they came back with several possible remedies but nothing has worked so far:

- Reboot in Safe Mode (holding Menu key while turning on) and try to edit 'Me' - no luck
- Soft Reset (take battery out and put back in), turn back on and try to edit 'Me" - no luck
- remove all third-party apps with permissions to Contacts/People and try to edit 'Me' - no luck
- Hard Reset to Factory Default (after backing up all data and apps) - this I have not done but it seems a bit drastic. However, I do not see another way than literally starting over. Will do this step eventually in the next days.
 
Upvote 0
Getting to the point where I could edit the contact card turned out to be relatively easy. I was also able to get Bump to work, but only by creating a duplicate contact record for myself and NOT linking it.

Here's what I did on my Evo 4g w/ Fresh 3.0 (this requires root obviously), in an adb shell session. I did this with the People app running, but you should probably do a clean boot or even do this in recovery.

# cd /data/data/com.android.providers.contacts
# sqlite3 contacts2.db

--- Warning, you are now at the bare metal, editing the database directly rather than using the correct API. Don't screw up! Consider the virtue of doing a backup first! ---

First off, you should have only ONE record in contacts with your name:

sqlite> select _id from contacts where display_name = 'My Name';

You should get one record, just a 1. By definition your own contact info has _id = 1 (from a dev perspective I think magic numbers in a relational database is a bold choice, but they didn't ask me for a vote).. If you get multiple ones, blow away all the extras (this should fire the triggers getting rid of all dependent records, btw):

sqlite> delete from contacts where _id = ###;

Now repeat for raw_contacts. Each contact can have several raw_contact entries, but in this case we just want the _id=1 record.

sqlite> select _id from raw_contacts where display_name = 'My Name' or contact_id = 1;

(if you see a whole lot of records it might be worth looking at them: select * from raw_contacts where display_name = 'My Name' or contact_id = 1)

Again, blow away the redundant records: delete from raw_contacts where _id = ###;

If you know SQL, while you're in there, you might want to look for any orphans, and any contact or raw_contact records with a null display_name. They seem to show up from time to time.

DO NOT delete the _id = 1 record from either contacts or raw_contacts. I did this and had to restore contact2.db from backup.

Now exit

sqlite> .quit
# sync
# exit

and reboot your phone. If you're lucky, and your problem was the same as mine, you should now be able to edit your contact record.

At least for me, I tried making a new entry with my own contact info (using the People app) and then linking them; this recreated the original problem. So I'm inclined to think I'm better off without that.

Now, to get Bump to work, I had to go into People and "Add a Contact", and recreate my contact info as a new record. DO NOT try to link this record. The problem seems to be that Bump is unable to fetch the _id = 1 record properly. I have no idea why this is the case; it should be using the appropriate API ... so either the API is broken, or Bump is trying to do something it shouldn't (e.g. get write lock on the record).
 
Upvote 0
I wish there was an easy method to look up any contact in edit mode and make it the 'Me' contact.
This seems to be the root of the problem -- whether or not editing works for everyone, it would have been better if we could just have assigned our (pre-existing, or maybe that's just me?) Google Contant as the "Me" contact. :eek:

What I did was, I painstakingly copied everything over. It worked, but it's a poor solution, and bothersome because cut&paste is not exactly elegant in Android.
 
Upvote 0
This seems to be the root of the problem -- whether or not editing works for everyone, it would have been better if we could just have assigned our (pre-existing, or maybe that's just me?) Google Contant as the "Me" contact. :eek:

At least on my phone -- and I assume this is universal in Android -- the "Me" contact has _id (the primary key) = 1 in the contact and raw_contact tables. Since primary keys are assigned automatically when records are inserted and start well above 1, you can't assign an existing contact as "Me".

You can link the two, but I'm pretty sure this is a bad idea, as you risk either losing access to the record in the contact table, or making the "Me" entry uneditable.
 
Upvote 0
Let me save you some time, at least if you're running a Froyo Desire. The database is set up a little differently than indicated above (and housed in a different spot, but that was easy enough). Rather than mess with it to figure it out, I did it the old fashioned way, which worked like a charm.

Sync your contacts.

Now back your database up:

Code:
adb pull cd /data/data/com.android.providers.contacts/databases/contacts2.db

Then just delete it:

Code:
adb shell
rm /data/data/com.android.providers.contacts.databases/contacst2.db

Reboot the phone. You might end up with a black screen. Holding the power button until the reboot menu comes up gets rid of it. Let it sync. Problem solved.
 
Upvote 0
Let me save you some time, at least if you're running a Froyo Desire. The database is set up a little differently than indicated above (and housed in a different spot, but that was easy enough). Rather than mess with it to figure it out, I did it the old fashioned way, which worked like a charm.

Sync your contacts.

Now back your database up:

Code:
adb pull cd /data/data/com.android.providers.contacts/databases/contacts2.db
Then just delete it:

Code:
adb shell
rm /data/data/com.android.providers.contacts.databases/contacst2.db
Reboot the phone. You might end up with a black screen. Holding the power button until the reboot menu comes up gets rid of it. Let it sync. Problem solved.


is need near that progress root?
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones