Вам нужно собрать информацию об установленных приложениях на телефоне, затем пройти через list
и найти нужную активность
PackageManager packmngr = this.getPackageManager();
Intent ints = new Intent(Intent.ACTION_MAIN, null)
ints.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> list = packmngr.queryIntentActivities(ints, PackageManager.PERMISSION_GRANTED);
ints.addCategory(Intent.CATEGORY_LAUNCHER);
<--- Здесь вы можете указать, какой тип <code>Intent (который разработчик другого приложения определил в манифесте) для поиска по запросу, может быть либо CATEGORY_LAUNCHER
, либо CATEGORY_DEFAULT
На самом деле основные виды деятельности имеют вид CATEGORY_LAUNCHER
.
И тривиальная итерация в списке:
for(ResolveInfo rlnfo: list)
{
//Adjust the code and do tests within here.
Log.i("ACTIVITY INFO: ", rlnfo.activityInfo.toString());
Log.i("ACTIVITY NAME: ",rlnfo.resolvePackageName.toString());
}
Проверьте здесь для получения дополнительной информации о константах и методах:
http://developer.android.com/reference/android/content/pm/PackageManager.html