Отключить функцию многооконности программно

Я пытаюсь отключить многооконную функцию Android. Я прочитал документацию по Android и знаю, что resizeableActivity будет работать только для Android N (уровень API 24), но я хочу отключить его на API-интерфейсах Android более низкого уровня. Поскольку устройства Samsung имеют функцию многооконности на всех устройствах (приблизительно). Так что я должен отключить его.


comment
Samsung MultiWindow имеет другой способ установки! так зачем вам его отключать?   -  person Elias Fazel    schedule 20.03.2017
comment
Я получил это требование для корпоративного приложения. Итак, мне нужно отключить его.   -  person Awais    schedule 21.03.2017


Ответы (2)


Вы не можете сделать это во время выполнения. Ваше приложение либо поддерживает многооконный режим, либо нет. Параметры, указанные в AndroidManifest.xml, не могут быть изменены во время выполнения.

Из документации android:resizeableActivity:

Если для этого атрибута установлено значение true, активность можно запускать в режимах разделенного экрана и произвольной формы. Если для атрибута установлено значение false, действие не поддерживает многооконный режим. Если это значение равно false и пользователь пытается запустить действие в многооконном режиме, действие занимает весь экран.

Для конкретных устройств Samsung вы можете попробовать поместить это в файл манифеста:

<meta-data android:name="com.sec.android.support.multiwindow" android:value="false" />
<meta-data android:name="com.samsung.android.sdk.multiwindow.multiinstance.enable"
            android:value="false" />
<meta-data android:name="com.samsung.android.sdk.multiwindow.penwindow.enable" 
            android:value="false" />
person azizbekian    schedule 20.03.2017
comment
Да, я прочитал документацию, как я уже упоминал. Но android:resizeableActivity=false будет работать на уровне API 24 и выше. Мне также нужно отключить эту функцию на более низком уровне. - person Awais; 21.03.2017
comment
@Awais, I need to disable this feature on lower level also эта функция не будет работать с API ниже 24, что означает, что она отключена по умолчанию. - person azizbekian; 21.03.2017
comment
Я попробовал ваши предложения, но это не работает. Пожалуйста, получите снимок, который я добавил после попытки. - person Awais; 21.03.2017
comment
Я думаю, это зависит от телефона. - person azizbekian; 21.03.2017
comment
Каждое устройство Samsung с функцией многооконности ведет себя одинаково. - person Awais; 21.03.2017
comment
Вам не нужно ничего, кроме «android: resizeableActivity = false» и targetSdkVersion не менее 24. Не беспокойтесь об атрибуте resizeableActivity, который используется только на уровне API 24 и выше. AndroidManifest никогда не вызывает сбой из-за ошибки версии, он отклоняет атрибут для более низких версий - person OMArikan; 17.10.2017
comment
И cn мы делаем это из adb? - person Benjamin Lucidarme; 13.12.2017
comment
@BenjaminLucidarme во время выполнения? Афаик, нельзя. - person azizbekian; 13.12.2017
comment
@azizbekian adb не работает: ссылка - person Benjamin Lucidarme; 13.12.2017
comment
@BenjaminLucidarme, что вы имеете в виду, говоря, можем ли мы сделать это из adb? - person azizbekian; 13.12.2017
comment
@azizbekian, можно ли отключить многооконный режим в adb? - person Benjamin Lucidarme; 13.12.2017
comment
@BenjaminLucidarme, я ничего не знаю. - person azizbekian; 13.12.2017
comment
для тех у кого такая же проблема как у меня, решение такое: adb shell settings put system multi_window_enabled 0 - person Benjamin Lucidarme; 14.12.2017
comment
@BenjaminLucidarme не работает, когда я отправляю apk для другого человека без использования этой строки - person famfamfam; 19.10.2020

После многих попыток я смог сделать это только на леденце!!! @Авайс

Settings.System.putInt(this.context.getContentResolver(), multi_window_enabled", 0 );
person Fernando Costa Gomes    schedule 22.08.2019