機密データが表示されているため、主に最近のアプリリストの画面を空白にします。このための解決策は、以下を使用することです。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
しかし、これはスクリーンショットも許可しません。これは問題です。
スクリーンショットを許可しながら、最近のアプリリストに空白の画面(または事前定義された画像)を表示する方法はありますか?
必要なのは:
_Android:excludeFromRecents="true"
_
それを<activity>(activity you want to exclude from recents)</activity>
内のAndroidマニフェスト
私はこの方法を試しましたが、機能しています。最近のリストで画面を空白にし、画面を許可するには、onPause()
でフラグを設定し、onResume()
でフラグをクリアします。
@Override
protected void onPause() {
super.onPause();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,WindowManager.LayoutParams.FLAG_SECURE);
}
@Override
protected void onResume() {
super.onResume();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
アクティビティに機密データが表示されている場合は、セキュリティ上の理由から、ユーザーがスクリーンショットを作成できないようにすることをお勧めします。最近のアプリの画面でも気になるのなら、スクリーンショットを同時に気にしないのはなぜですか? Android OS SecureFlagは、データとスクリーンショットの機能を保護するように設計されていると思いますが、その目的を否定するだけです。
とにかくこの機能が必要な場合は、このフラグを使用して、すべての機密データを個別のアクティビティに移動してみてください。その場合、機密データを保護し、他のアプリのアクティビティでスクリーンショットを作成することができます。
いくつかの調査を行った後、私はこれが現時点では不可能であることに気づきました。
onCreateThumbnail
はあなたが探している関数のようです。残念ながら、この機能は実装されていないか、少なくとも機能していないようです。
Ped7gが指摘したように、onCreateThumbnailは2014年以降「修正されません」。
また、 Android onCreateThumbnailリファレンスページ で非推奨のフラグが付けられています。
この機能はおそらく機能しません。