Вы можете определить, когда какое-либо приложение переходит в режим разделенного экрана, если вы спросили AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED событие при регистрации в службе специальных возможностей.
Возможный способ определения режима разделенного экрана:
В функции onAccessibilityEvent(AccessibilityEvent event)
нам нужно написать event.getSource().getContentDescription();
, и поиск «Split» или «Dismiss» или других ключевых слов в строке зависит от различных пользовательских параметров.Всякий раз, когда приложение входит в режим разделенного экрана, его описание контента устанавливается как «Split Whatsapp» и т. Д. Вот так мы можем определить, когда какое-либо конкретное приложение входит в режим разделенного экрана.
Возможный способ заблокировать использованиеРежим разделенного экрана для любого приложения:
После обнаружения необходимо добавить эту строку, чтобы пользователь не мог использовать режим разделенного экрана.Он просто закрепит текущее окно приложения.
performGlobalAction(AccessibilityService.GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN)
Существуют и другие глобальные события для выполнения таких действий, как:
- GLOBAL_ACTION_BACK
- GLOBAL_ACTION_HOME
- GLOBAL_ACTION_LOCK_SCREEN
- GLOBAL_ACTION_NOTIFICATIONS
- GLOBAL_ACTION_POWER_DIALOG
- GLOBAL_S
- GLOBAL_ACTION_RECENTS
- GLOBAL_ACTION_TAKE_SCREENSHOT
GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN
10 для этого подходит, но подходит для 1057 *1056* 10 для 10Сценарий:
GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN public class AppAccessibility extends AccessibilityService {
@Override
protected void onServiceConnected() {
super.onServiceConnected();
AccessibilityServiceInfo config = new AccessibilityServiceInfo();
config.eventTypes = AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED;
config.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
if (Build.VERSION.SDK_INT >= 16) {
config.flags = AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
}
setServiceInfo(config);
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if (event != null && event.getEventType() == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED) {
if (event.getSource() != null && event.getSource().getContentDescription() != null) {
if (event.getSource().getContentDescription().toString().contains("Split")) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
performGlobalAction(AccessibilityService.GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN));
}
}
}
}
}