2014-07-01 29 views
7

Kullanıcının verilerini korumak için yerel aygıtta kalıcı bellekte hiçbir şey saklamadığı yere yüksek öncelik veren bir Android uygulaması geliştiriyorum.Ekran görüntüsünü tespit et Android 4.0+ +

Kullanıcı verilerini daha fazla korumak için, birisi etkin uygulamanın ekran görüntüsünü almaya çalıştığında sunucumuza bir web servisi çağrısı yapmak istiyoruz. Şu ana kadar gördüğüm özümler, ekran görüntüsünün alınmasını ve kullanıcının ekranındaki bir Tost ekranında bir ekran hatası hatası mesajının atılmasını amaçlayan this snippet'u içerir. Göz önünde bulundurduğum bir diğer yaklaşım, bazı cihazların ekran görüntülerini almak için kullandığı Ses Seviyesi Azaltma ve Güç düğmesi kombinasyonunu dinlemekti (Samsung S4 gibi cihazlar bu yöntemden saptı). Son başvurum, uygulama çalışırken değişiklik için FileObserver in the location of the screenshot Gallery kullanacaktı, ancak bu aynı zamanda bir alt optimal çözüm gibi görünüyor ve sahip olmayı istemediğim bir İzin istemi sunuyor. Ayrıca resimlerin dosya hedefinden emin olamıyorum.

Uzak bir kullanıcı bir ekran görüntüsü almaya çalıştığında Snapchat uygulamasının katılımcıları uyardığını düşünüyorum. Bu özelliğin nasıl uygulanabileceği, cihazın köklenmesiyle ilgili herhangi bir öneriniz var mı? Resmi olmayan yöntemler de kabul edilir.

+3

Bir kullanıcının ekranının fotoğrafını çekebileceğini ve hassas verileri zaten paylaşabileceğini unutmayın. Ayrıca, hiçbir şey cihazlarına bir USB kablosuyla bilgisayarlarına bağlanmalarını ve bir ekran görüntüsünü adb yoluyla çekmelerini engelliyor. Yine de, aradığınız bir cevap olabilir: http://stackoverflow.com/a/9822607/379245 – BVB

+1

Teşekkürler! Hiçbir zaman% 100 güvenli olmayacağını ve gerçekten isteyen herhangi bir kullanıcının tespit edilmemiş verileri koruyabileceğini anlıyorum. Bununla birlikte, uygulamanın işlevi ve kullanıldığı ortam nedeniyle, DDMS kullanılarak ekranın çekilmesi veya ekranın yakalanması riski çok azdır. Bununla birlikte, bunu cihaz aracılığıyla önlemek için mümkün olduğunca çok önlem almaya çalışıyoruz. Gönderdiğiniz bağlantı esasen ilk bağlantımdaki kod snippet'idir ve sonuçta yapabileceğim tek şey bu olabilir. Bununla birlikte, Snapchat gibi uygulamaların bunu nasıl rapor edebildiğini merak ettim. –

+1

Nihayetinde penceremdeki FLAG_SECURE paramını kullanarak yaralarım. Şimdiye kadar ICS + ve DDMS üzerinden normal ekran görüntülerini önlemektedir. Ancak kök erişimi olan biri tarafından engellenebileceğinden emin değilim. Buna karşı hassas olup olmadığı konusunda bir fikrin var mı? –

cevap

0

FLAG_SECURE muhtemelen bir pencerede ekran görüntülerini önlemenin en iyi yoludur, ancak bazı yorumcular burada bazı çözümlerin olduğunu söyledikleri gibi.

Belki de this answer, ekran görüntüsünün ne zaman alındığını algılamak için Snapchat'da nasıl yaptıklarını anlatıyor.

İlgili konular