Senor Gruber has uncovered a trick inside Google’s Mobile app that uses an undocumented method to access the iPhones proximity sensor. In normal situations, the iPhone proximity sensor – the little thing in the top of the iPhone that knows when you have it up to your face – can be turned on or off. When it’s on and you place the phone up to your ear the screen stops responding. When it’s off, the sensor does nothing. This is key because no information is passed during this on or off toggle. There is no way to tell if the proximity sensor has been triggered.
1. Whoever at Apple approved this Google Mobile update did not realize that it was using the private proximyStateChanged method.
2. Whoever at Apple approved it knew that it used a private API, but approved it anyway.
3. Google sought and obtained permission from Apple to use this method.
We all know Apple wouldn’t allow Google to use an unsupported call. It’s not in their DNA. So 1 and 2 are obvious culprits and probably why the app was held back.
Note: Erica Sadun also told Gruber that she, too, is an SDK pirate:
Based on some of the email I’ve gotten this morning, I think the occasional use of undocumented methods in public iPhone frameworks is actually pretty common in third-party iPhone apps.
Obviously this matters little to us, the mere mortals. But that Google can change the rules while Apple lets it get away with it is an unnerving prospect for developers. There is enough arbitrary secrecy in the iPhone app process and adding a little more doesn’t make things more exciting – it makes app developers look elsewhere.