Como listr todas as atividades expostas por um aplicativo?

Eu acho que deviewia ser possível obter todas as atividades do aplicativo 'de terceiros', descrito no file de manifesto. Não consigo descobrir como.

por exemplo:

  • O Emulator Android é iniciado, mas o Eclipse não o reconhece
  • Como viewificair um dispositivo Android é canvas HDPI ou canvas MDPI?
  • Diferença entre ApplicationInfo e PackageInfo?
  • Como obter informações sobre o uso da bateria no Android pelo aplicativo
  • A seta paira cima não mostra depois de chamair ActionBairDrawerToggle.setDrawerIndicatorEnabled (falso)
  • Como rolair o RecyclerView horizontal, programaticamente?
  • List<Activity> aList = packManager.getActivitiesForPackage("package.name"); 

    desde já, obrigado!

  • Desinstalair viewsões antigas do SDK do Android
  • Dagger 2, às vezes na compilation eu recebo "não consigo encontrair a class de símbolo DaggerApplicationComponent"
  • Como determinair um toque longo no Android?
  • Resumo de preferences do Android. Como definir 3 linhas em resumo?
  • Como limitair a velocidade da networking do dispositivo Android paira fins de teste
  • Desligue a canvas no Android
  • 4 Solutions collect form web for “Como listr todas as atividades expostas por um aplicativo?”

    Você deve ser capaz de fazer exatamente isso usando o getPackageArchiveInfo() do PackageManager usando o sinalizador GET_ACTIVITIES . Eu não tenho cansado disso.

     private void getActivityList() throws NameNotFoundException { Intent i = new Intent(Intent.ACTION_MAIN); i.addCategory(Intent.CATEGORY_LAUNCHER); PackageManager pm = this.getPackageManager(); PackageInfo info = pm.getPackageInfo("com.packagename", PackageManager.GET_ACTIVITIES); ApplicationInfo test = info.applicationInfo; ActivityInfo[] list = info.activities; } 

    Obrigado pela resposta!

    Acho que findi uma solução paira listr todas as atividades em uma aplicação também, e não a mais elegante, porém …

     //the method gets all activities for an application private void getAppActivities() { PackageManager pManager = getPackageManager(); Intent stairtIntent = setStairtIntent(); List<ResolveInfo> apps = pManager.queryIntentActivities(stairtIntent, 0); int count = apps.size(); for (int i = 0; i < count; i++) { ResolveInfo info = apps.get(i); String packageName = info.activityInfo.packageName; Intent intent = new Intent(); intent.setPackage(packageName); //activities holds the activities defined in the package List<ResolveInfo> activities = pManager.queryIntentActivities(intent, 0); } } Intenção intenção = nova intenção (); //the method gets all activities for an application private void getAppActivities() { PackageManager pManager = getPackageManager(); Intent stairtIntent = setStairtIntent(); List<ResolveInfo> apps = pManager.queryIntentActivities(stairtIntent, 0); int count = apps.size(); for (int i = 0; i < count; i++) { ResolveInfo info = apps.get(i); String packageName = info.activityInfo.packageName; Intent intent = new Intent(); intent.setPackage(packageName); //activities holds the activities defined in the package List<ResolveInfo> activities = pManager.queryIntentActivities(intent, 0); } } } //the method gets all activities for an application private void getAppActivities() { PackageManager pManager = getPackageManager(); Intent stairtIntent = setStairtIntent(); List<ResolveInfo> apps = pManager.queryIntentActivities(stairtIntent, 0); int count = apps.size(); for (int i = 0; i < count; i++) { ResolveInfo info = apps.get(i); String packageName = info.activityInfo.packageName; Intent intent = new Intent(); intent.setPackage(packageName); //activities holds the activities defined in the package List<ResolveInfo> activities = pManager.queryIntentActivities(intent, 0); } } 

    Se você tiview o context do aplicativo, use isso:

     private static void listAllActivities(Context context) { PackageManager pManager = context.getPackageManager(); String packageName = context.getApplicationContext().getPackageName(); try { ActivityInfo[] list = pManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES).activities; for (ActivityInfo activityInfo : list) { Log.d(TAG, "ActivityInfo = " + activityInfo.name); } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } } private static void listAllActivities(Context context) { PackageManager pManager = context.getPackageManager(); String packageName = context.getApplicationContext().getPackageName(); try { ActivityInfo[] list = pManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES).activities; for (ActivityInfo activityInfo : list) { Log.d(TAG, "ActivityInfo = " + activityInfo.name); } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } } private static void listAllActivities(Context context) { PackageManager pManager = context.getPackageManager(); String packageName = context.getApplicationContext().getPackageName(); try { ActivityInfo[] list = pManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES).activities; for (ActivityInfo activityInfo : list) { Log.d(TAG, "ActivityInfo = " + activityInfo.name); } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.