Essayez FLAG_SECURE
:
public class FlagSecureTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
setContentView(R.layout.main);
}
}
Cela permet de se prémunir contre les captures d'écran manuelles et les captures d'écran automatiques à partir de l'historique des tâches récentes de l'ICS. Elle permet également de se prémunir contre les enregistrements d'écran (par exemple, les applications utilisant les API de projection de médias).
UPDATE Il s'agit également d'une protection contre Now On Tap ou d'autres assistants sous Android 6.0 ; ils n'auront pas accès aux détails des widgets et des conteneurs de votre interface utilisateur si l'utilisateur fait apparaître l'assistant.
UPDATE #2 Cependant, tout ce qui se trouve dans l'activité ne sera pas protégé. Toute fenêtre pop-up - Dialog
, Spinner
, AutoCompleteTextView
, débordement de la barre d'action, etc. - ne seront pas sécurisés. Vous pouvez corriger le Dialog
en appelant getWindow()
sur elle et en mettant FLAG_SECURE
. Le reste... devient délicat. Voir cet article de blog pour plus.