2012-02-13 17 views
6

Per una delle nostre app sicure, è necessario disabilitare la funzionalità di screenshot per l'app in Android ICS. È possibile su un dispositivo non rooted?
Grazie,
RajathDisabilita schermate in android ics

+0

Si trova in un ambiente aziendale in cui si controllano i dispositivi o solo una normale applicazione di mercato? Se controlli il dispositivo, potrebbe essere possibile prevenire gli screenshot, ma solo scattare una foto funzionerà sempre. E per le normali applicazioni non dovresti nemmeno provarci. – CodesInChaos

risposta

14

Perché non aggiungere questa riga nella classe di attività. Questo farà il trucco.

// This disables screen shot to be taken for current activity 
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE); 

Si consiglia di have a look at Mark Murphy's blog post.

+0

Si noti che questo potrebbe non funzionare su tutti i dispositivi pre-ICS, poiché l'implementazione dello screenshot potrebbe non essere standard e quindi non riconoscere ['FLAG_SECURE'] (http://developer.android.com/reference/android/view/WindowManager. LayoutParams.html # FLAG_SECURE). –

1

Questo non sarà mai possibile, di fine periodo di storia. È inoltre possibile che il proprietario del dispositivo ottenga le chiavi di crittografia utilizzate dall'applicazione leggendo la memoria mediante un debugger. Questo può essere usato per decifrare qualsiasi immagine "sensibile" utilizzata dall'app.

+2

E nel peggiore dei casi si può semplicemente scattare una foto. – CodesInChaos

+0

@Rook e CodeInChaos, grazie per i vostri input. Penso che i requisiti non impongano una politica di sicurezza così forte. Mi sono imbattuto in [FLAG_SECURE] (http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SECURE) che potrebbe fare il trucco – rajath

+0

@CodesInChaos Di solito il punto di disattivazione dell'acquisizione dello schermo è di impedire lo sfondo app (possibilmente malware) dall'ottenere informazioni sensibili. –

Problemi correlati