I am having a problem reading the General number of a contact via JSR75 on series 40 devices. I have tried 6101, 6102, and 8801 so far.
The Series 40 General number problem extends beyond trying to read the field from the JSR75 interface, though I am reading it with the correct field, Contact.TEL. It seems the values associated with General numbers will never be read via JSR75 unless it is first written through the JSR75 interface. If the contact is written through the JSR75 interface using TEL/ATTR_NONE then it is visible in the phonebook by the user as a General number, and it can be read back again by the JSR75 interface.
It's not that it just can't be read, it doesn't exist as far as the JSR75 interface knows. Calling contact.countValues(Contact.TEL) will return a count that doesn't include any general numbers so if there is a Cell and a General you will get a return of 1, instead of 2. It's not like there are gaps in the list either. Iterating from 0 to the value count and getting each value will return all of the values in the list that aren't General. If the list looks like General, Cell, General, Home, General, then when read in JSR75 Cell will be in the 0 position and Home will be in the 1 position.
From this behavior it seems that the Series 40 implementation of JSR75 has a mapping table that points to the native contact list and if the number is General it isn't inserted into the table when the user enters it. If the entry comes from the JSR75 side though the entry is created and can then be read back.
In addition we have tried reading from every value of every field we could in case something wasn't being reported. And we have tried reading and removing the entire record contents and writing it back from the JSR75 side, but that didn't force the General number to show up either.
Any advice or help would be appreciated.