Détecter une capture d'écran Android
Je programme au cours des dernières années pour Android et je me demande quelque chose : Comment faire pour détecter lorsque l'utilisateur de prendre une capture d'écran ? Je veux que lorsque l'utilisateur prend une capture d'écran , nous pouvons passer à l'activité suivante .
J'ai essayé la méthode de l'interception d'un événement, mais il y a un problème : lorsque l'appareil passe en veille , par exemple, un événement est intercepté . Avez-vous une solution pour intercepte seulement le cas de la capture d'écran ou d'ignorer les autres cas?
Merci pour votre aide !
OriginalL'auteur Nachding | 2015-04-09
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de Diffusion en direct et l'Intention de vous dire qu'une capture d'écran a été prise.
Certaines personnes ici discuter des options possibles pour le faire ( comme c'est fait sur Snapchat ).
Une option possible serait d'utiliser
FileObserver
.Vous êtes en train de penser au sujet de ses Intentions. Vous avez une liste de tous les ici Mais malheureusement, il n'y a pas de capture d'écran de détection. Vous devriez regarder dans FileObserver comme mentionné sur le lien reddit. Je ne peux garantir qu'il fonctionne, mais l'idée serait d'observer le dossier où les captures d'écran sont enregistrées dans.
OriginalL'auteur EscapeArtist
Voici mon hack pour être averti quand une capture d'écran est prise.
Testé sur Oneplus 2 et Moto E.
Mise à jour:
Cela ne semblait pas fonctionner pour moi et j'ai fini à l'aide d'un ContentObserver sur la capture d'écran type d'entrées.
Théoriquement, ce que vous pouvez faire est de mettre un de ceux qui veillent sur les captures d'écran du dossier et à chaque fois que cet événement déclenche, obtenir la liste des fichiers et voir le dernier fichier créé, qui devrait être votre fichier de capture d'écran.
Où avez-vous mis ce code @UditShah
Le code ci-dessus ne fonctionne pas toujours. Il déclenche des captures d'écran de l'événement plusieurs fois et est donc inexacte. J'ai fini par utiliser ContentObserver des fichiers multimédia et de détecter si le dernier fichier de capture d'écran ou pas et donc de le détecter. En cas vous souhaitez utiliser le code ci-dessus, si vous souhaitez utiliser cette chose dans une activité, puis de la déployer sur la méthode onResume et arrêter la détection de la méthode onPause de l'activité du cycle de vie.
Ouais je confirme le code dans la réponse œuvres 1/4 du temps
OriginalL'auteur Udit Shah