Поведение запуска действия определяется режимами запуска в файлах AndroidManifest.xml
приложений, флагами намерений и параметрами ActivityOptions, предоставленными вызывающей стороной. Используйте ActivityOption#setLaunchDisplayId(int)
чтобы указать конкретный дисплей для запуска активности.
- По умолчанию действие запускается на том же дисплее, что и вызывающий абонент. Например, новый экземпляр активности, запущенной из панели запуска, должен размещаться на том же дисплее без дополнительных флагов и опций. Обязательно используйте правильный контекст (активность или приложение) для запуска.
- Если запуск осуществляется из источника, не связанного с конкретным дисплеем (например, из оболочки или контекста приложения), то активность размещается на верхнем дисплее, на котором пользователь последний раз взаимодействовал с устройством или с которого было совершено последнее действие. запущен.
- Намерение запустить действие можно отнести к существующему экземпляру действия в системе. В таком случае, если не были указаны дополнительные флажки, действие отображается на том же дисплее, где оно использовалось в последний раз. Если целевой дисплей указан с помощью
ActivityOptions#setTargetDisplayId()
, действие перемещается на этот дисплей (если это разрешено безопасностью и другими ограничениями).
Ограничения безопасности
Чтобы предотвратить незаконное присвоение вредоносным приложением конфиденциальной информации пользователя путем считывания ее с поверхности созданного им виртуального дисплея, приложения могут запускать свои собственные действия только на созданном ими виртуальном дисплее в Android 10. Однако:
- Системные компоненты с разрешением
INTERNAL_SYSTEM_WINDOW
могут запускаться на любом дисплее. - Вызывающие абоненты с разрешением
ACTIVITY_EMBEDDING
могут запускать действия из других приложений, имеющих флагActivityInfo.FLAG_ALLOW_EMBEDDED
. - Запуск действий на частных дисплеях разрешен только для владельца или действий, присутствующих на этом дисплее.
Аналогичные ограничения применяются к добавлению окон на дисплеи.
Android 10 включает метод ActivityManager#isActivityStartAllowedOnDisplay(Context context, int displayId, Intent intent)
для проверки ограничений безопасности для приложения перед попыткой запуска на дисплее. В Android 9 (и более ранних версиях) результаты ограниченного запуска вызывают SecurityException
.
Большинство ограничений безопасности применяются в методе ActivityStackSupervisor#isCallerAllowedToLaunchOnDisplay()
.
Поведение запуска действия определяется режимами запуска в файлах AndroidManifest.xml
приложений, флагами намерений и параметрами ActivityOptions, предоставленными вызывающей стороной. Используйте ActivityOption#setLaunchDisplayId(int)
чтобы указать конкретный дисплей для запуска активности.
- По умолчанию действие запускается на том же дисплее, что и вызывающий абонент. Например, новый экземпляр активности, запущенной из панели запуска, должен размещаться на том же дисплее без дополнительных флагов и опций. Обязательно используйте правильный контекст (активность или приложение) для запуска.
- Если запуск осуществляется из источника, не связанного с конкретным дисплеем (например, из оболочки или контекста приложения), то активность размещается на верхнем дисплее, на котором пользователь последний раз взаимодействовал с устройством или с которого было совершено последнее действие. запущен.
- Намерение запустить действие можно отнести к существующему экземпляру действия в системе. В таком случае, если не были указаны дополнительные флажки, действие отображается на том же дисплее, где оно использовалось в последний раз. Если целевой дисплей указан с помощью
ActivityOptions#setTargetDisplayId()
, действие перемещается на этот дисплей (если это разрешено безопасностью и другими ограничениями).
Ограничения безопасности
Чтобы предотвратить незаконное присвоение вредоносным приложением конфиденциальной информации пользователя путем считывания ее с поверхности созданного им виртуального дисплея, приложения могут запускать свои собственные действия только на созданном ими виртуальном дисплее в Android 10. Однако:
- Системные компоненты с разрешением
INTERNAL_SYSTEM_WINDOW
могут запускаться на любом дисплее. - Вызывающие абоненты с разрешением
ACTIVITY_EMBEDDING
могут запускать действия из других приложений, имеющих флагActivityInfo.FLAG_ALLOW_EMBEDDED
. - Запуск действий на частных дисплеях разрешен только для владельца или действий, присутствующих на этом дисплее.
Аналогичные ограничения применяются к добавлению окон на дисплеи.
Android 10 включает метод ActivityManager#isActivityStartAllowedOnDisplay(Context context, int displayId, Intent intent)
для проверки ограничений безопасности для приложения перед попыткой запуска на дисплее. В Android 9 (и более ранних версиях) результаты ограниченного запуска вызывают SecurityException
.
Большинство ограничений безопасности применяются в методе ActivityStackSupervisor#isCallerAllowedToLaunchOnDisplay()
.
Поведение запуска действия определяется режимами запуска в файлах AndroidManifest.xml
приложений, флагами намерений и параметрами ActivityOptions, предоставленными вызывающей стороной. Используйте ActivityOption#setLaunchDisplayId(int)
чтобы указать конкретный дисплей для запуска активности.
- По умолчанию действие запускается на том же дисплее, что и вызывающий абонент. Например, новый экземпляр активности, запущенной из панели запуска, должен размещаться на том же дисплее без дополнительных флагов и опций. Обязательно используйте правильный контекст (активность или приложение) для запуска.
- Если запуск осуществляется из источника, не связанного с конкретным дисплеем (например, из оболочки или контекста приложения), то активность размещается на верхнем дисплее, на котором пользователь последний раз взаимодействовал с устройством или с которого было совершено последнее действие. запущен.
- Намерение запустить действие можно отнести к существующему экземпляру действия в системе. В таком случае, если не были указаны дополнительные флажки, действие отображается на том же дисплее, где оно использовалось в последний раз. Если целевой дисплей указан с помощью
ActivityOptions#setTargetDisplayId()
, действие перемещается на этот дисплей (если это разрешено безопасностью и другими ограничениями).
Ограничения безопасности
Чтобы предотвратить незаконное присвоение вредоносным приложением конфиденциальной информации пользователя путем считывания ее с поверхности созданного им виртуального дисплея, приложения могут запускать свои собственные действия только на созданном ими виртуальном дисплее в Android 10. Однако:
- Системные компоненты с разрешением
INTERNAL_SYSTEM_WINDOW
могут запускаться на любом дисплее. - Вызывающие абоненты с разрешением
ACTIVITY_EMBEDDING
могут запускать действия из других приложений, имеющих флагActivityInfo.FLAG_ALLOW_EMBEDDED
. - Запуск действий на частных дисплеях разрешен только для владельца или действий, присутствующих на этом дисплее.
Аналогичные ограничения применяются к добавлению окон на дисплеи.
Android 10 включает метод ActivityManager#isActivityStartAllowedOnDisplay(Context context, int displayId, Intent intent)
для проверки ограничений безопасности для приложения перед попыткой запуска на дисплее. В Android 9 (и более ранних версиях) результаты ограниченного запуска вызывают SecurityException
.
Большинство ограничений безопасности применяются в методе ActivityStackSupervisor#isCallerAllowedToLaunchOnDisplay()
.