How can I determine which application is the default application for a certain action? For example I want to know which application is used for making calls or receiving text me
Use Intent Filters and resolveActivity().
From Android's documentation on Intent Filters:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType(HTTP.PLAIN_TEXT_TYPE); // "text/plain" MIME type
ComponentName compName = sendIntent.resolveActivity();
And here's the documentation on ComponentName