Pregunta

he aplicación A se define como a continuación:

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name="com.example.MyExampleActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

Ahora en la aplicación B, ¿cómo puedo escribir el código para iniciar la actividad de aplicación A? Gracias!

¿Fue útil?

Solución

Si ustedes se enfrentan a "Permiso Negación: a partir Intención ..." error o si la aplicación es cada accidente sin ningún motivo durante el lanzamiento de la aplicación - A continuación, utilice el código de una sola línea en el manifiesto

android:exported="true"

Por favor, tenga cuidado con acabado (); Si se ha perdido el cabo que la aplicación consiguiendo congelado. si es mencionado la aplicación sería un lanzador suave.

finish();

La otra solución sólo funciona para las dos actividades que están en la misma aplicación. En mi caso, la aplicación B no sabe com.example.MyExampleActivity.class clase en el código, por lo compile fallará.

He buscado en la web y encontré algo como esto más adelante, y funciona bien.

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example", "com.example.MyExampleActivity"));
startActivity(intent);

También puede utilizar el método setClassName:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.hotfoot.rapid.adani.wheeler.android", "com.hotfoot.rapid.adani.wheeler.android.view.activities.MainActivity");
startActivity(intent);
finish();

También puede pasar los valores de una aplicación a otra aplicación:

Intent launchIntent = getApplicationContext().getPackageManager().getLaunchIntentForPackage("com.hotfoot.rapid.adani.wheeler.android.LoginActivity");
if (launchIntent != null) {
    launchIntent.putExtra("AppID", "MY-CHILD-APP1");
    launchIntent.putExtra("UserID", "MY-APP");
    launchIntent.putExtra("Password", "MY-PASSWORD");
    startActivity(launchIntent);
    finish();
} else {
    Toast.makeText(getApplicationContext(), " launch Intent not available", Toast.LENGTH_SHORT).show();
}

Otros consejos

Si tanto la aplicación tiene la misma firma (lo que significa que ambas aplicaciones son suyos y firmaron con la misma clave), puede llamar a su otra actividad en la aplicación de la siguiente manera:

Intent LaunchIntent = getActivity().getPackageManager().getLaunchIntentForPackage(CALC_PACKAGE_NAME);
startActivity(LaunchIntent);

Espero que ayuda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top