2014-07-01 33 views
7

Pracuję nad aplikacją dla systemu Android, która kładzie duży nacisk na ochronę danych użytkownika, tak aby nie przechowywać niczego w trwałej pamięci na urządzeniu lokalnym.Wykryj próby zrzutów ekranu w systemie Android 4.0+

Aby dodatkowo zabezpieczyć dane użytkownika, chcemy wykonać wywołanie usługi internetowej na nasz serwer za każdym razem, gdy ktoś spróbuje zrobić zrzut ekranu z aktywną aplikacją.

Rozwiązania, które do tej pory widziałem, to: this snippet, których zadaniem jest zapobieganie pobieraniu zrzutu ekranu i wysyłanie komunikatu o zrzutu ekranu w toast u użytkownika. Inne podejście, które rozważałem, to słuchanie kombinacji przycisku zmniejszania głośności i przycisku zasilania, którego niektóre urządzenia używają do robienia zrzutów ekranu (chociaż urządzenia takie jak Samsung S4 odbiegają od tej metody). W ostateczności zamierzałem użyć FileObserver in the location of the screenshot Gallery dla zmian podczas działania aplikacji, ale to też wydaje się być rozwiązaniem nieoptymalnym i wprowadza prośbę o pozwolenie, której nie chciałbym mieć. Nie mogę też być pewien docelowego pliku obrazów.

Uważam, że aplikacja Snapchat może ostrzegać uczestników, gdy zdalny użytkownik próbuje wykonać zrzut ekranu. Czy masz jakieś sugestie, w jaki sposób można zaimplementować tę funkcję, nie powodując rootowania urządzenia? Nieoficjalne metody są również mile widziane.

+3

Pamiętaj, że użytkownik może zrobić zdjęcie swojego ekranu i mimo to udostępnić poufne dane. Nic też nie przeszkadza im podłączyć urządzenia za pomocą kabla USB do komputera i zrobić zrzut ekranu za pomocą adb. Chociaż tutaj może być odpowiedź, której szukasz: http://stackoverflow.com/a/9822607/379245 – BVB

+1

Dzięki! Zdaję sobie sprawę, że nigdy nie będzie w 100% bezpieczny, a każdy użytkownik, który naprawdę chce, może zachować dane niezauważone. Jednak ze względu na funkcję aplikacji i środowisko, w którym zostanie ona użyta, istnieje niewielkie ryzyko sfotografowania lub przechwycenia ekranu za pomocą DDMS. Staramy się jednak zastosować jak najwięcej środków, aby zapobiec temu przez urządzenie. Link, który zamieściłeś, jest w zasadzie fragmentem kodu w moim pierwszym linku, a na końcu wszystko, co mogę zrobić, to zrobić. Byłem jednak zainteresowany tym, jak aplikacje takie jak Snapchat zdołały to zgłosić. –

+1

Ostatecznie zakończyłem pracę używając parametru FLAG_SECURE w moim oknie. Jak dotąd wydaje się, że uniemożliwia normalne zrzuty ekranu w ICS + i DDMS. Nie jestem pewien, czy można go obejść przez kogoś z dostępem root. Wszelkie pomysły na to, czy jest to podatne na to? –

Odpowiedz

0

FLAG_SECURE to prawdopodobnie najlepszy sposób na uniknięcie zrzutów ekranowych w oknie, ale niektórzy komentatorzy twierdzą, że ma on pewne obejścia.

Może this answer rozwiązuje pytanie o to, jak to zrobić w Snapchacie, aby wykryć, kiedy zrzut ekranu został zrobiony.

Powiązane problemy