Shared publicly  - 
New Social APIs in Android ICS

"In Ice Cream Sandwich we provide a rich new API to allow any social networking application to integrate with the system."

With improved high resolution photos, update streams, and simplified creation of new connections, Ice Cream Sandwich offers the ability to create a rich experience for all social networks.

We're going to try using Google+ to host discussions around our Developers’ blog posts. The post author +Daniel Lehmann has agreed to stop by and join the conversation, so, let’s hear what you think!
[This post is by Daniel Lehmann, Tech Lead on the Android Apps team. — Tim Bray]. With Android Ice Cream Sandwich, we set out to build software that supports emotional connections between humans and t...
rui hu's profile photoMauricio Campos's profile photoMargaret Brown (Hernandez)'s profile photoFenn Cheng's profile photo
"improved high resolution photos" Nice
I hear contact picture sync at some awful low resolution and look awful full screen , any truth to that?
I see some integration with Twitter on my phone. But the overall experience is very limited currently. I hope it improves with time!
What apps are currently using this new API besides Google+?
A fundamental problem with the join / split function function is that it is only supported in android. Change your phone, or wipe, and you get to spend another hour joining the same contacts, because the join is not saved in gmail
Ananya Gupta
The high-res image addition is nice in ICS.

But I can't help think that this is another feature that will fail due to the 'right-hand-not-keeping-up-with-the-left-hand' phenomenon which is rampant across Google's products.

Let me elaborate:

Right now, I can set high-res images to contact through my phone. However, anytime I make a change to the pictures for my contacts from Gmail they get trounced to low-res version. The same problem from picasaweb and Picasa desktop tools.

In fact, the problem gets worse, when a user resets their device and associated contact images are downloaded from the Google Account user-space in the cloud because now, pictures for all contacts are reduced to lower-res versions irrespective of what they were set to earlier. This should have been caught in 0.1 alpha test of the feature. This attention to detail in UX is a cakewalk for Apple. It's an ideology that cannot be trained and can only be lead by someone who is empowered and stubborn enough to put his foot down over what detracts from the end goal - US not feature elements.

Problems like this are rampant throughout all of Google products in some interaction or the other. It is Google's Achilles Heel.
i am just wondering when we are going to see real time status updates from multiple social networks in contacts? i guess its the simplistic side of me obsessing over it but the less i need to root around my phone and the more info i have on hand in one places raises the efficiency level for me
Yeah the Gmail image degradation has been killing my Android contacts for a couple of years now. I'm surprised this hasn't been made a big priority by the +Gmail team, especially with +Larry Page pushing social/Android.
A minor correction: the addContactsStreamItem should use the parameter "text" as the StreamItems.TEXT content value, instead of "Breakfasted at Tiffany's". Should be obvious for any developer, but it is not orthogonal with the other fields set as parameters (and we developers love orthogonality :-))
+Viktor Kojouharov This is a good point, but actually a much harder problem than it originally sounds. Short answer: We are working on it :-)

Long answer: Android devices connect to multiple cloud sources, so in the case of contacts you have different contact sources. If you make a change to a specific contact (let's say: the phone number of a Gmail contact), Android can upload that change to Gmail easily, as that contact "lives" in Gmail. However, once we are talking about aggregations between contacts from different sources, there is no single "home" for your contact anymore. Imagine you manually joined a Skype with a Twitter contact. Where would we store that relationship?

We have various ideas in how to solve this. Stay tuned :-)
How does the People app select which raw contact to take the photo from? Presumably it would be nice to choose the highest resolution one by default, but it would also be nice to let the user make a different choice. And then, could the user's choice not be persisted via cloud backup -- not the photo itself, but just which raw contact is being used as the source? Then, when you reset your phone or move to another device, once the sync adapters are all set up, you'd get back the same photos you had before.

I don't see any reason why changing a photo in Gmail should blow away a better photo that comes from somewhere else.
+Dave Steinberg By default, we pick the highest resolution picture, but the user can overwrite that selection (in the contact editor you can tap on a photo and chose "Use this photo").
To add to what +Viktor Kojouharov said above, this is also true from one device to another. If you have two devices associated to the same account and join repeated contacts in one, this will not automatically update on the other device. you will have to join everything manually on the other device as well. It would be nice if this could be automated.
+Daniel Lehmann I think it'd also be nice to sync the "default number/email" flag with GMail, especially when I'm tinkering with (read: flashing / wiping) my phone or switch devices. But I reckon that's already a known issue, too.
ne chance of Samsung Galaxy 2 on ice cream
when will my Dutch Galaxy Nexus receive 4.0.3? Those social API's are only in 4.0.3......I am still on 4.0.2, so any word on when I can expect the OTA?
+James Power Yeah I know. I think this G policy on FB is losing some points on social side. I mean you could improve integration with Android and G+, Twitter and Skype (and btw I totally agree the requested integration on Gmail contacts about joining), but if G policy keeps FB out of the door I think G should revise his policy.
+Michele Dabergami Google isn't keeping Facebook out, they just want Facebook to use the Social APIs like everybody else has to.
if u look on youtube they seem to do put the 4.03 on these but they say its offical all i want was a answer Samsung Galaxy S2 update offical :)
+Mike Lentini For real? I thought Verizon's Gnexi shipped with 4.0.3! Seriously, why did Verizon postpone the release so long? I thought it was to flash 4.0.3 on it
+Ritish Oemraw the rumor is the delays were because Google wanted Google Wallet on the Nexus but Verizon didn't. I don't think this was ever confirmed but that is the most common rumor.
Would be nice with a contact api that didn't require apps to request access to all contacts to be able to provide synced contacts or request a number or email via user interaction.
+Mike Lentini Facebook does not integrate their system with individual devices. Individual devices and OS's integrate with facebook (same goes for all services). So Facebook doesn't have to conform with anyones API. Anyone trying to use Facebook and Facebook data needs to use Facebook API. Facebook doesn't want Google using their data - and Google HAS infact backed-off. It's got nothing to do with API.
If android decides what rawdata rows to display in a contact, is there a priority property that app devs can use to override android's precedence algorithm?.
And something like an unified messenger? Joining SMS, Talk, and every messenger we could want? Just an API to join this thing, and "hop" all your conversations with a person are unified, if he/she is connected on talk, the message will go on talk, on jabber, go on jabber, and if not connected, an SMS, it would be really cool as a feature!
(a simple API to go in front of other apps that does the interface with the service (jabber/talk/skype ....)
Android Social API feeds and queries the device. Facebook API feeds and queries the social network. The Android Facebook APP CAN choose to use the Android Social API to inject data into the device. Android CAN query Facebook API to get data from Facebook service (no relation to the Facebook APP).
What we know is that Facebook does not want Google dipping into the Facebook bucket. Google will not willfully do that and piss off another big company for no particular reason. So here we are... not able to merge data buckets of our OWN data just because the buckets come from different companies. SCREW this :P
That's what I mean, each company did a part, Google the unified messenger etc, and FB (and other) the other part, the connector, which connect to this API
Atm nothing, but on my dreamed world It provides a connector, something that get datas from its servers and make it work with the api I was talking, not clear? (I'm French, so excuse my English ;-) )
Si leurs client se plaignent que leur application ne s'intègre pas comme il faut à leur OS alors ils seront bien obligé (ou verront des applications tierces comme FriendCaster) de le faire
Is there any chance that we could someday update the contact information from cloud accounts directly from the phone? I remember trying this a couple months ago and on my new Galaxy Nexus with 4.0.1 and it isn't possible. We simply get a message that says: "Not editable with this application." Is there any chance this could change in the future?
Any idea why the "+ connection"button doesn't show here? Google plus and twitter are installed, "me" is synching as expected and shows the connection to my Google plus account and updates tab. I'd really love to have that for other contacts as well but there just isn't any button, neither when viewing nor when editing the contact.
High resolution in social network is good, but high resolution in gmail contact pics is better! :-)
I'm glad that google is acknowledging the terrible resolution in gmail problem. Here's hoping for a quick and easy fix.
+Daniel Lehmann about the crappy low resolution contact photo after synced with GMail Contacts, why is it so difficult? Just ask and push the GMail Contacts developers to increase their contact photo resolution, that will solve the issue easily. It's a shame that Android does not have a good cloud backup for contacts except GMail Contacts, we pretty much rely on it and this issue exist for years already, since 2008. Three years ... Three years and still no fix ... Simply unbelievable.
Hey, how do I use the <img> tag in StreamItems.COMMENTS/.TEXT? The API doc says "allows formatting and embedded resource images via HTML (as parseable via fromHtml(String))", but if I use an <img> tag I only get a cyan placeholder. The fromHtml doc says to use an imagegetter, but how do I do that with StreamItems?
Add a comment...