I am looking for a reliable way to programmatically find and list all available services in an Android device (both running and not running).>
You can enumerate all packages and retrieve their services:
List pkgs = getPackageManager().getInstalledPackages(PackageManager.GET_SERVICES); for(PackageInfo pkg : pkgs) { // You can now use pkg.services }
Compatible to API 1.