Conformément à la cette réponse de Stack Overflow Les applications Android utilisant des FLAG_SECURE
dans leurs activités sont protégés contre les captures d'écran effectuées par le système. Vous obtenez un fichier vierge lorsque vous utilisez screencap
et d'autres applications de capture d'écran, et cette erreur lors de l'utilisation des boutons matériels :
Impossible de faire une capture d'écran en raison d'un espace de stockage limité, ou parce que l'application ou votre organisation ne l'autorise pas.
Toutefois, il ne s'agit pas d'une garantie absolue. Dans Android Studio, je peux toujours faire des captures d'écran de ces applications "sécurisées" à l'aide du bouton indiqué dans la section cette réponse de l'OS .
J'ai jeté un coup d'œil au code source d'Android Studio, et la capture d'écran est obtenue par le biais d'une commande framebuffer:
à l'ADB qui, à son tour, utilise screencap
. Avant de chercher dans les sources plus d'informations sur la façon dont cela fonctionne pour adb mais pas pour un terminal Root et une éventuelle solution "développeur", j'ai pensé que je devais demander : Est-ce que quelqu'un a déjà compris ce qui se passe dans les coulisses ici et est-ce qu'une solution "développeur" peut être trouvée ? utilisateur final l'utiliser ? Idéalement, sans avoir besoin d'un PC.
Mon appareil est rooté, donc je suis ouvert aux applications/commandes/etc. qui nécessitent un root (ou d'avoir le débogage USB activé). J'ai essayé quelques applications de capture d'écran antérieures à Android-2.3 qui utilisent le root, mais aucune d'entre elles ne fonctionne encore (probablement en raison de la façon dont le framebuffer est maintenant protégé).