The Solution I came up with cannot happen without the users consent. Maybe there will be a better one in the future. But here is mine:
I added the following intent filter for FooActivity in the Manifest of FooApp.
<intent-filter>
<action android:name="com.example.FooApp.ACTION_HOMELAUNCHER"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Then I added a crossProfileIntentfilter for my work profile (put the following code in the profile administration app currently running in the work profile).
DevicePolicyManager manager =
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName componentName = BasicDeviceAdminReceiver.getComponentName(context);
IntentFilter filterin = new IntentFilter("com.example.FooApp.ACTION_HOMELAUNCHER");
manager.addCrossProfileIntentFilter(componentName, filterin, DevicePolicyManager.FLAG_MANAGED_CAN_ACCESS_PARENT);
In the end, when I want to launch the App in the work profile, I fire the ACTION_HOMELAUNCHER
intent from BarApp and then the user can select, whether he wants to lauch the work profile version or the normal version of FooApp.
Feel free to improve upon this answer.