¿Es posible evitar la grabación de pantalla en la aplicación de Android?
Me gustaría desarrollar una aplicación segura para Android. En eso, necesito detectar el software de grabación de pantalla que se está ejecutando en segundo plano y eliminarlo. He utilizado SECURE FLAG para evitar capturas de pantalla. Pero no sé si es posible evitar la captura de video de la pantalla de Android también. Déjame saber cómo evitar la captura de pantalla (video / capturas de pantalla).
Respuestas:
Voy a decir que no es posible evitar completamente la captura de pantalla / video de ninguna aplicación de Android a través de medios compatibles. Pero si solo desea bloquearlo para dispositivos Android normales , la BANDERA SEGURA es sustancial.
1) La bandera de seguridad bloquea tanto la captura de pantalla normal como la captura de video.
Vea la respuesta aquí .
2) Existen medios alternativos para capturar el contenido de la pantalla.
Puede ser posible capturar la pantalla de otra aplicación en un dispositivo rooteado o mediante el uso del SDK,
Por ejemplo: existe un software para reflejar la pantalla de su teléfono en su computadora a través del SDK y, por lo tanto, el software de captura de pantalla podría usarse allí, sin que su aplicación lo pueda descubrir.
Vea la respuesta aquí .
fuente
Solo agrega esta línea:
Antes de tu
setContentView()
método.fuente
Para deshabilitar la captura de pantalla:
Agregue la siguiente línea de código en el
onCreate()
método:Para habilitar la captura de pantalla:
Busque
LayoutParams.FLAG_SECURE
y elimine la línea de código.fuente
Para los usuarios de Java, escriba esta línea sobre su
setContentView(R.layout.activity_main);
Para usuarios de kotlin
fuente
window?.set...
porque en los Diálogos, no sabes si vas a tener una Ventana.Parece que sabe cómo deshabilitar las capturas de pantalla de su aplicación y hay otras respuestas que lo ayudan en eso. Pero intentaré darte información importante que nadie te está dando.
1) No puede tener una aplicación que sea 100% segura para tomar capturas de pantalla (foto / video). No existe una forma oficial de realizar capturas de pantalla en Android. Si una aplicación está grabando pantallas, entonces debe estar usando algunos métodos no compatibles (ya sea rootear o usar el SDK).
Hay muy poco margen para bloquear una aplicación si está usando acceso de root para grabar pantallas.
2) Nadie mencionó este problema aquí, pero tenga mucho cuidado al usarlo
WindowManager.LayoutParams.FLAG_SECURE
. Se ha verificado en muchos dispositivos (como en Samsung Galaxy ACE, por ejemplo, GT-S5830), que esto hace que toda la vista esté codificada. Me gusta esto,Por favor ponga un cheque como este,
Funciona perfectamente en dispositivos ICS, así que no hay problema.
3) También descubrí que incluso en dispositivos más nuevos como Android 4.3, esto causa problemas de animación cuando se gira la pantalla. Por favor, compruebe el informe de error.
fuente
Puede hacer su aplicación como propietario de dispositivo / perfil y llamar
setScreenCaptureDisabled()
. De los documentos , esta api hace lo siguiente:Alternativamente, puede convertirse en una aplicación de socio de MDM (Mobile Device Management) .OEMs proporciona API adicionales a sus aplicaciones de socio de MDM para controlar el dispositivo. Por ejemplo, Samsung proporciona una API para controlar la grabación de pantalla en el dispositivo a sus socios de MDM.
Actualmente, esta es la única forma de hacer cumplir las restricciones de captura de pantalla.
fuente
Prueba esto:
fuente
Vi todas las respuestas que son apropiadas solo para una sola actividad, pero existe mi solución que bloqueará la captura de pantalla para todas las actividades sin agregar ningún código a la actividad. En primer lugar, cree una clase de aplicación personalizada y agregue un.
registerActivityLifecycleCallbacks
Luego regístrelo en su manifiesto.MyApplicationContext.class
Manifiesto
fuente
Según esta guía oficial , puede agregar
WindowManager.LayoutParams.FLAG_SECURE
al diseño de su ventana y no permitirá capturas de pantalla.fuente
Utilicé esta solución para permitir instantáneas manuales en la aplicación y no permitir la captura de pantalla cuando la aplicación pasa a segundo plano, espero que ayude.
fuente
sobre la captura de pantalla de la foto, FLAG_SECURE no funciona en el dispositivo rooteado.
pero si supervisa el archivo de captura de pantalla, puede evitar obtener el archivo original.
probar este uno .
1. monitorización de la captura de pantalla (monitor de archivos) con el servicio remoto de Android
2. eliminar la imagen de captura de pantalla original.
3. entregar la instancia de mapa de bits para que pueda modificarla.
fuente