Hello.

I am trying to read and write contacts on the SIM phonebook.

First I tried writing a contact with GetContentResolver.insert(), passing RawContacts.CONTENT_URI as URI and ensuring the column RawContacts.ACCOUNT_NAME had the value "SIM", and adding 2 lines (1 for4 name and 1 for phone) to Data.CONTENT_URI, linked by contact ID. This seemed to work: the contacts showed in the contact list with the SIM logo next to them, but they wouldn't survive a reboot... apparently that's just a placeholder in memory, which is synced with the real SIM at startup and at every change.

Then I tried reading the list of contacs on the SIM with

                Cursor cur = getContentResolver().query(
                                Uri.parse("content://icc/adn")
                                ,null
                                ,null
                                ,null
                                ,null
                                );

This fails with a NullPointerException on a real phone. On the emulator, it 
returns a Cursor with 0 lines. This sounds likely.
Strangely, accessing content://icc/fdn and content://icc/sdn both work, both on 
emulator and on phone.

Finally, I tried writing a contact with

                ContentValues values = new ContentValues();
                values.put("name","Name Of Contact");
                values.put("number", "+777777777");
                Uri uri = getContentResolver().insert(
                                Uri.parse("content://icc/adn")
                            , values)
                            ;

This returns a null URI and no contact is inserted.

What's wrong there, and what's the right way of doing this?

Regards,
Fabrizio

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to