posted 11 years ago
Maybe I was a little harsh. And there are legit use cases.
But it would mean that an app can directly control what another one does, by directly interfering with the output/input. This is something the Android designers tried to avoid with the concept of sandboxing, intents and loose coupling. The data objects you name (SMS, phone calls, contacts) are public objects in Android by design. When an app creates files it can create public or private files. I would expect a socket connection to be private, at least by default.
Even for taking screenshots (possibly reading the output of another app) you need an app with root privileges.