此问题针对Android for work。
在此guide之后,我编写了一个包含DevicePolicyController的应用程序。控制器为我的Android设备创建一个托管配置文件。
我在该个人资料中添加了一个名为 FooApp 的应用。 现在,我可以在启动器中看到两个 FooApp 图标,一个带有工作徽章,另一个没有。
我还有一个应用程序 BarApp ,该应用程序仅在主配置文件中。 如何在 BarApp 中获得 FooApp 工作版本的启动意图? (从 BarApp 中启动 FooApp 的工作版本)
我无法像在API 23上那样使用CrossProfileApps。
答案 0 :(得分:0)
未经用户同意,我想出的解决方案是不会发生的。也许将来会有更好的选择。但这是我的:
我在 FooApp 的清单中为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);
最后,当我想在工作资料中启动该应用程序时,我从 BarApp 触发ACTION_HOMELAUNCHER
意向,然后用户可以选择是否要取消工作资料版本或 FooApp 的常规版本。
随时根据此答案进行改进。