una saber publicidad programas programar programa predeterminadas para moviles ibuildapp gratis desde descargar crear como cero cambiar app aplicaciones android android-intent

saber - Iniciar una aplicación desde otra aplicación en Android



programa para crear aplicaciones android (9)

Encontré la solución. En el archivo de manifiesto de la aplicación, encontré el nombre del paquete: com.package.address y el nombre de la actividad principal que deseo iniciar: MainActivity El siguiente código inicia esta aplicación:

Intent intent = new Intent(Intent.ACTION_MAIN); intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity")); startActivity(intent);

Quiero lanzar un paquete instalado desde mi aplicación de Android. Asumo que es posible usar intenciones, pero no encontré la manera de hacerlo. ¿Hay un enlace, donde encontrar la información?


Este es mi ejemplo de inicio del escáner de códigos QR / barras desde mi aplicación si alguien lo encuentra útil

Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.setPackage("com.google.zxing.client.android"); try { startActivityForResult(intent, SCAN_REQUEST_CODE); } catch (ActivityNotFoundException e) { //implement prompt dialog asking user to download the package AlertDialog.Builder downloadDialog = new AlertDialog.Builder(this); downloadDialog.setTitle(stringTitle); downloadDialog.setMessage(stringMessage); downloadDialog.setPositiveButton("yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialogInterface, int i) { Uri uri = Uri.parse("market://search?q=pname:com.google.zxing.client.android"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); try { myActivity.this.startActivity(intent); } catch (ActivityNotFoundException e) { Dialogs.this.showAlert("ERROR", "Google Play Market not found!"); } } }); downloadDialog.setNegativeButton("no", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int i) { dialog.dismiss(); } }); downloadDialog.show(); }


Pasos para lanzar una nueva actividad de la siguiente manera:

1. Obtener intención para el paquete

2.Si la intención es nula, redirigir al usuario a playstore.

3.Si la intención no es nula actividad abierta.

public void launchNewActivity(Context context, String packageName) { Intent intent = null; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.CUPCAKE) { intent = context.getPackageManager().getLaunchIntentForPackage(packageName); } if (intent == null) { try { intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse("market://details?id=" + packageName)); context.startActivity(intent); } catch (android.content.ActivityNotFoundException anfe) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + packageName))); } } else { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } }


Sé que esto ha sido respondido pero aquí es cómo implementé algo similar:

Intent intent = getPackageManager().getLaunchIntentForPackage("com.package.name"); if (intent != null) { // We found the activity now start the activity intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } else { // Bring user to the market or let them choose an app? intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse("market://details?id=" + "com.package.name")); startActivity(intent); }

Aún mejor, aquí está el método:

public void startNewActivity(Context context, String packageName) { Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); if (intent != null) { // We found the activity now start the activity intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } else { // Bring user to the market or let them choose an app? intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse("market://details?id=" + packageName)); context.startActivity(intent); } }

Código duplicado eliminado:

public void startNewActivity(Context context, String packageName) { Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); if (intent == null) { // Bring user to the market or let them choose an app? intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("market://details?id=" + packageName)); } intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); }


Si conoce los datos y la acción en la que reacciona el paquete instalado, simplemente debe agregar esta información a su instancia de intención antes de iniciarla.

Si tiene acceso al AndroidManifest de la otra aplicación, puede ver toda la información necesaria allí.


Si no conoce la actividad principal, puede usar el nombre del paquete para iniciar la aplicación.

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address"); if (launchIntent != null) { startActivity(launchIntent);//null pointer check in case package name was not found }


Si quieres abrir una actividad específica de otra aplicación podemos usar esto.

Intent intent = new Intent(Intent.ACTION_MAIN, null); intent.addCategory(Intent.CATEGORY_LAUNCHER); final ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.fuelgauge.PowerUsageSummary"); intent.setComponent(cn); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { startActivity(intent) }catch(ActivityNotFoundException e){ Toast.makeText(context,"Activity Not Found",Toast.LENGTH_SHORT).show() }

Si necesita otra aplicación, en lugar de mostrar Toast puede mostrar un cuadro de diálogo. Usando el diálogo puede llevar al usuario a Play-Store para descargar la aplicación requerida.


// check for the app if it exist in the phone it will lunch it otherwise, it will search for the app in google play app in the phone and to avoid any crash, if no google play app installed in the phone, it will search for the app in the google play store using the browser : public void onLunchAnotherApp() { final String appPackageName = getApplicationContext().getPackageName(); Intent intent = getPackageManager().getLaunchIntentForPackage(appPackageName); if (intent != null) { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } else { onGoToAnotherInAppStore(intent, appPackageName); } } public void onGoToAnotherInAppStore(Intent intent, String appPackageName) { try { intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse("market://details?id=" + appPackageName)); startActivity(intent); } catch (android.content.ActivityNotFoundException anfe) { intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName)); startActivity(intent); } }


// in onCreate method String appName = "Gmail"; String packageName = "com.google.android.gm"; openApp(context, appName, packageName); public static void openApp(Context context, String appName, String packageName) { if (isAppInstalled(context, packageName)) if (isAppEnabled(context, packageName)) context.startActivity(context.getPackageManager().getLaunchIntentForPackage(packageName)); else Toast.makeText(context, appName + " app is not enabled.", Toast.LENGTH_SHORT).show(); else Toast.makeText(context, appName + " app is not installed.", Toast.LENGTH_SHORT).show(); } private static boolean isAppInstalled(Context context, String packageName) { PackageManager pm = context.getPackageManager(); try { pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); return true; } catch (PackageManager.NameNotFoundException ignored) { } return false; } private static boolean isAppEnabled(Context context, String packageName) { boolean appStatus = false; try { ApplicationInfo ai = context.getPackageManager().getApplicationInfo(packageName, 0); if (ai != null) { appStatus = ai.enabled; } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return appStatus; }