Is there a way I can change the activity that is launched when the application is started?
Check whether your desired launcher activity is the default one (with the isMyAppLauncherDefault() from your question). This method temporarily enables FakeLauncherActivity , which leads to a change in the set of available launcher activities, which forces Android to forget its default launcher.
Launcher Activities are the activities that can be launched for a given intent. For example, when you press an app icon on the home screen, the StartActivity intent starts the activity you have specified as the launcher activity.
I would recommend having a helper activity that is always designated as the launcher activity in your manifest. Then, in the onCreate of that activity you can do whatever determination you need to decide what app to start and then finish the helper activity. Example:
In your manifest (launcher activity):
<activity android:name=".HelperActivity" ... />
Then, in HelperActivity's onCreate:
@Override
public void onCreate(Bundle b){
super.onCreate();
//determine what activity you want
startActivity(new Intent(this, NewActivity.class);
finish();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With