Wygląda na to, że w Chrome na Androida w wersji 65 wprowadzono „funkcję”, która nie pozwala na zrobienie zrzutu ekranu w trybie incognito.
Podczas próby wykonania zrzutu ekranu system Android wyświetli ostrzeżenie: „Zrzuty ekranu nie są dozwolone przez aplikację lub organizację”.
/**
* Sets the attributes flags to secure if there is an incognito tab visible.
*/
@VisibleForTesting
void updateIncognitoState() {
WindowManager.LayoutParams attributes = mWindow.getAttributes();
boolean currentSecureState = (attributes.flags & WindowManager.LayoutParams.FLAG_SECURE)
== WindowManager.LayoutParams.FLAG_SECURE;
boolean expectedSecureState = isShowingIncognito();
if (currentSecureState == expectedSecureState) return;
if (expectedSecureState) {
mWindow.addFlags(WindowManager.LayoutParams.FLAG_SECURE);
} else {
mWindow.clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
}
To narzuca zasady, których można oczekiwać w środowisku korporacyjnym na telefonie osobistym.
Interfejs systemu operacyjnego powinien jasno określać, kiedy i jak inne aplikacje rejestrują ekran. Jako twórca aplikacji nie powinienem przejmować się unikaniem zrzutów ekranu. Złamanie tej funkcji łamie najniższy wspólny mianownik udostępniania danych: wykonywanie zrzutu ekranu. Jednym z powodów zrobienia zrzutu ekranu jest to, że aplikacja nie ma odpowiedniej funkcji eksportu danych.
Źródło: Dyskusja HN
Czy jest jakiś sposób, aby wyłączyć lub zapobiec temu zachowaniu?
źródło
Odpowiedzi:
Wydaje się, że jest to efekt uboczny ukrywający karty incognito na liście najnowszych aplikacji , która ma służyć jako funkcja prywatności.
Dodali również
--enable-incognito-snapshots-in-android-recents
przełącznik, aby zmienić to zachowanie, ale niestety nie jest to łatwe do przekazania na Androidzie i nie ma wpisuchrome://flags
. Nie znalazłem nikogo, kto prosiłby o sposób (łatwo) opcjonalny; Sugeruję złożenie raportu o błędzie dotyczącym efektu ubocznego blokowania zrzutu ekranu; ten przełącznik powinien być przynajmniej odsłonięty jako flaga.źródło