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?