Как получить намерение запуска для моего приложения рабочего профиля из моего приложения в основном профиле? - PullRequest
0 голосов
/ 06 июня 2019

Этот вопрос предназначен для Android для работы.

Я написал приложение, включающее DevicePolicyController, следуя этому руководству .Контроллер создает управляемый профиль для моего устройства Android.

Я добавил приложение в этот профиль, которое называется FooApp .Теперь я вижу две иконки FooApp в моей панели запуска, одну с рабочим значком и другую без.

У меня также есть приложение BarApp , которое есть только восновной профиль.Как получить намерение запустить рабочую версию FooApp в BarApp ?(Запустите рабочую версию FooApp изнутри BarApp )

Я не могу использовать CrossProfileApps , как на API 23.

1 Ответ

0 голосов
/ 07 июня 2019

Решение, которое я придумал, не может произойти без согласия пользователей. Может быть, будет лучше в будущем. Но вот мое:

Я добавил следующий фильтр намерений для FooActivity в манифесте FooApp .

<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 .

Не стесняйтесь улучшать этот ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...