Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo puedo iniciar una aplicación específica de forma programática en Android?

Quiero lanzar una aplicación específica. Sé cómo hacer intentos pero quiero evitar el menú de selección si hay varias aplicaciones que pueden manejar la intención, quiero ir directamente a una aplicación en particular. Espero que esto tenga sentido.

  • Utilizar Gradle para dividir bibliotecas externas en archivos separados dex para resolver el límite de métodos de Android Dalvik 64k
  • Cómo detectar acceso directo en la pantalla de inicio
  • Cómo mostrar y ocultar la barra de acciones mediante programación en una actividad
  • ¿Podemos dibujar línea en lienzo android entre dos puntos dados por giroscopio?
  • AndroidRuntime error: Paquete: incapaz de marshal valor
  • Si llamo getMeasuredWidth () o getWidth () para el diseño en onResume devuelven 0
  • ¿Cómo obtener la dirección completa desde la latitud y la longitud?
  • ¿Por qué utilizar Handlers mientras que runOnUiThread hace lo mismo?
  • ¿BroadcastReceiver.onReceive siempre se ejecuta en el subproceso de interfaz de usuario?
  • NSLog equivalente para Android dev utilizando Eclipse
  • NoClassDefFoundError en la biblioteca Google Play Services V2
  • Notificación de Android de la pantalla desactivada
  • 5 Solutions collect form web for “¿Cómo puedo iniciar una aplicación específica de forma programática en Android?”

    Usted utiliza el nombre / clase del paquete directamente, por ejemplo para crear una nueva intención de llamar al programa twidroid que usaría el siguiente texto del enlace :

    Intent intent = new Intent("com.twidroid.SendTweet"); 

    Es probable que desee probar / capturar un ActivityNotFoundException para cuando la aplicación no esté instalada.

    Debe utilizar la función del gestor de paquetes.

     Context ctx=this; // or you can replace **'this'** with your **ActivityName.this** try { Intent i = ctx.getPackageManager().getLaunchIntentForPackage("com.twidroid.SendTweet"); ctx.startActivity(i); } catch (NameNotFoundException e) { // TODO Auto-generated catch block } 
     Intent intent = new Intent(); intent.setClassName("package.name", "package.name.LauncherActivityName"); startActivityForResult(intent,REQUEST_CODE); 

    La actividad que está llamando debe aparecer no sólo en el Manifiesto para su propio paquete, sino también en el Manifiesto para el paquete LLAMANDO. – No se olvide!

    Yo suelo:

      try { Intent intent = new Intent(); intent.setClassName("package.name", "<your_package_name>"); startActivity(intent); } catch (NameNotFoundException e) { Log.e(TAG, e.getMessage()); } 

    Pero como Cami sugirió que esto funcionará también:

     try { Intent i = ctx.getPackageManager().getLaunchIntentForPackage("com.twidroid.SendTweet"); ctx.startActivity(i); } catch (NameNotFoundException e) { Log.e(TAG, e.getMessage()); } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.