¿Puedo probar si una aplicación está disponible para manejar un intento, sin iniciarlo?

Específicamente, estoy tratando de averiguar si hay una aplicación para manejar la intención del mercado, pero me gustaría una solución de caso general.

Sé que si haces algo como esto, puedes decir si hay una aplicación disponible para manejar la intención. Estoy tratando de hacer algo que en realidad no lanza la intención. ¿Alguna idea sobre lo que podría hacer?

try
{
    String strURL="market://details?id="+thePackage;
    Intent the_intent = new Intent(Intent.ACTION_VIEW, Uri.parse(strURL));
    the_intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
    startActivity(the_intent)

}
catch (ActivityNotFoundException e)
{
    String strUrl="https://play.google.com/store/search?c=apps&q="+thePackage;

    Intent the_intent = new Intent(Intent.ACTION_VIEW, Uri.parse(strUrl));
    the_intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
    startActivity(the_intent)
}

Lo que quiero es una solución que no implique comenzar realmente la actividad. Hay algunas razones por las que quiero hacer esto, pero me imagino que no soy la única que ha pensado en una razón para esto, parece que debe haber una manera ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta