「PermissionDenial:starting Intent ...」エラーに直面している場合、またはアプリの起動中に理由もなくアプリがクラッシュする場合-次に、マニフェストでこの1行のコードを使用します
android:exported="true"
finish();に注意してください。、見逃した場合はアプリがフリーズします。その言及があれば、アプリはスムーズなランチャーになります。
finish();
もう1つのソリューションは、同じアプリケーション内にある2つのアクティビティに対してのみ機能します。私の場合、アプリケーションBはコード内のクラスを認識していないcom.example.MyExampleActivity.class
ため、コンパイルは失敗します。
Webで検索したところ、以下のようなものが見つかりましたが、うまく機能しています。
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example", "com.example.MyExampleActivity"));
startActivity(intent);
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();
あるアプリから別のアプリに値を渡すこともできます。
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();
}