Frage

Ich habe Anwendung A wie folgt definiert:

<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>

Jetzt in Anwendung B, wie kann ich den Code schreiben, um die Aktivität in der Anwendung A zu beginnen? Dank!

War es hilfreich?

Lösung

Wenn Sie Jungs stehen vor „Permission Denial: Start Intent ...“ Fehler oder wenn die app Absturz immer ohne Grund während dem Start der App - Verwenden Sie dann diese einzige Zeile Code in Manifest

android:exported="true"

Bitte seien Sie vorsichtig mit finish (); Wenn Sie es die App eingefroren immer verpasst. sein erwähnt, wenn die App wäre ein glatter Werfer sein.

finish();

Die andere Lösung funktioniert nur für zwei Aktivitäten, die in der gleichen Anwendung sind. In meinem Fall ist Anwendung B nicht Klasse com.example.MyExampleActivity.class im Code kennen, so kompilieren fehlschlagen.

ich im Internet gesucht und gefunden unten so etwas, und es funktioniert gut.

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

Sie können auch die setClassName Methode verwenden:

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();

Sie können auch die Werte von einer Anwendung zu einer anderen Anwendung übergeben:

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();
}

Andere Tipps

Wenn beide Anwendung die gleiche Signatur haben (was bedeutet, dass beide APPS sind Ihnen und mit dem gleichen Schlüssel signiert), können Sie Ihre anderen App-Aktivitäten wie folgt aufrufen:

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

Hoffe, es hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top