We all know all too well what DLL Hell is.
We also know what is Jar Hell.
Welcome to the new stage, the App Hell.
Multiple applications for the same device, all trying to solve their particular task, with their developers each scratching their own itch, and stepping on each other's toes, with little or no way of finding out about each other.
Just a quick example:
Ring Control - controls the ringer volume and vibrate settings;
Locale - controls (at this point) ringer volume, vibrate, WiFi;
Power Manager - controls GPS, WiFi, Bluetooth;
Toggle Settings - controls GPS, WiFi, Bluetooth.
The answer to this predicament is much bigger than a humble blog article can contain, all I'm trying to do here is to open the can of worms.
I can just guess that there has to be a device-wide capabilities discovery and current state notification bus the applications can subscribe to, and cooperate. Priority management wouldn't hurt, either.
Meanwhile, prepare for Android balkanization... And try to remember which of your gadgets does what and not go nuts in the process.