未经用户同意,我想出的解决方案不会发生。也许将来会有更好的。但这是我的:
我在 FooApp 的 Manifest 中为FooActivity添加了以下意图过滤器。
<intent-filter>
<action android:name="com.example.FooApp.ACTION_HOMELAUNCHER"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
然后我为我的工作配置文件添加了一个 crossProfileIntentfilter(将以下代码放入当前在工作配置文件中运行的配置文件管理应用程序中)。
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);
最后,当我想在工作配置文件中启动应用程序时,我ACTION_HOMELAUNCHER
从BarApp触发意图,然后用户可以选择是要启动工作配置文件版本还是FooApp的普通版本。
随意改进这个答案。