Permissions on Android are tricky to get right from a user perspective. Usually you only want to do something minor and innocuous (pre-fill a form with a contact’s info) but the actual permission you have to request gives you much more power than necessary (access to ALL contact details, ever).
It’s understandable that users might be suspicious of you. If your app is closed-source then they have no way of verifying you’re not downloading all their contacts to their servers. Even if you explain the permission request people may not trust you. In the past I’ve chosen not to implement what might be handy features just to avoid user distrust.
That said, one thing that bothers me is that you don’t always have to ask for permission to do some actions.
Exactly, because on Android, you can use Intents.
Android’s Intents system is fascinating from a historical perspective. Like so many other aspects of smartphones we take for granted today, it comes from PalmOS (and not from iOS or Android). I detailed PalmOS’ “multitasking” capabilities in my Palm retrospective, but it basically comes down to this: in PalmOS, applications could ‘sublaunch’ other applications, let them do stuff, and then return to the original application. Many of the people working on these PalmOS capabilities (some of whom came from Be) would later work for the Android team at Google, where they further evolved it into the Intents system Android currently has.
The current smartphone platforms owe way more to Palm than modern pundits will ever be capable of understanding or willing to admit. Want to talk about
inconsequential crap beveled edges and rounded corners some more?