Pergunta

Eu aplicação Uma definido como a seguir:

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

Agora, em aplicação B, como posso escrever o código para iniciar a atividade no aplicativo A? Obrigado!

Foi útil?

Solução

Se vocês estão enfrentando "Permissão Negação: a partir Intenção ..." erro ou se o aplicativo está recebendo acidente sem qualquer razão durante o lançamento do app - Em seguida, use este código linha única no manifesto

android:exported="true"

Por favor, tenha cuidado com o acabamento (); , Se você perdeu ele o aplicativo ficar congelado. se o seu mencionou o aplicativo seria um lançador suave.

finish();

A outra solução só funciona para duas atividades que estão na mesma aplicação. No meu caso, a aplicação B não sabe com.example.MyExampleActivity.class classe no código, para compilação irá falhar.

Eu procurei na web e encontrou algo como isto abaixo, e funciona bem.

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

Você também pode usar o 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();

Você também pode passar os valores de um aplicativo para outro aplicativo:

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

Outras dicas

Se ambos aplicação têm a mesma assinatura (o que significa que ambos os APPS são seus e assinou com a mesma chave), você pode chamar a sua outra atividade aplicativo da seguinte forma:

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

Hope isso ajuda.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top