Chrome for Android バージョン65では、シークレットモードでスクリーンショットを撮ることができない「機能」が導入されたようです。
スクリーンショットを撮ろうとすると、Androidは「スクリーンショットを撮ることはアプリまたは組織によって許可されていません」という警告を表示するようになりました。
/**
* 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);
}
}
これは、個人の電話を使用する企業環境で予想されるルールを課しています。
オペレーションシステムUIは、他のアプリが画面を記録するタイミングと方法を明確にする必要があります。アプリ開発者として、画面キャプチャを回避することに煩わされるべきではありません。この機能を壊すと、データ共有の最も一般的な要素であるスクリーンショットを壊すことになります。スクリーンショットを作成する理由の1つは、アプリケーションが適切なデータエクスポート機能を欠いているからです。
出典:HNディスカッション
この動作を無効化または防止する方法はありますか?
1
それはこれまでで最も奇妙なことです!彼らがスクリーンショットを無効にしたいのなら、なぜインカグニーでのみ!?彼らが通常のモードでそれをしないことを願っています...私が回避策を見つけたらお知らせします。
—
aBochur
これは、デバイス管理ポリシーが原因である可能性があります(会社のデバイスを使用している場合、または会社をデバイス管理者として許可している場合)。これはブラウザのアップグレードから始まりましたか?
—
ライダー
彼らは私のデバイスをハイジャックし、基本的な、すぐに使えるAndroid機能を無効にしたと推測されることに驚いています。これは、セキュリティのためにWi-Fiを切断することに似ています。これに対するオプトアウトは本当にありませんか?カスタムカーネルモジュールをインストールするためにルート化できないデバイスを使用しています。
—
iyrin
この動作はばかげているので、Firefoxに切り替えました。
—
ペドロA