1

这个问题针对 Android 工作。

我按照本指南编写了一个包含 DevicePolicyController 的应用程序。控制器为我的 Android 设备创建托管配置文件。

我在该配置文件中添加了一个名为FooApp的应用程序。现在我可以在我的启动器中看到两个FooApp图标,一个带有工作徽章,一个没有。

我还有一个应用BarApp,它只在主要配置文件中。如何在BarApp获取 FooApp工作版本的启动意图?(从BarApp中启动FooApp的工作版本)

我不能像在 API 23 上那样使用CrossProfileApps 。

4

1 回答 1

0

未经用户同意,我想出的解决方案不会发生。也许将来会有更好的。但这是我的:

我在 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_HOMELAUNCHERBarApp触发意图,然后用户可以选择是要启动工作配置文件版本还是FooApp的普通版本。

随意改进这个答案。

于 2019-06-07T20:57:46.227 回答