Ist es möglich, die Bildschirmaufnahme in der Android-Anwendung zu verhindern?
Ich möchte eine sichere Android-Anwendung entwickeln. Dabei muss ich Bildschirmaufzeichnungssoftware erkennen, auf der Hintergrund ausgeführt wird, und sie töten. Ich habe SECURE FLAG verwendet, um Screenshots zu verhindern. Aber ich weiß nicht, ob es möglich ist, die Videoaufnahme des Android-Bildschirms auch zu verhindern. Lassen Sie mich wissen, wie Sie die Bildschirmaufnahme verhindern können (Video / Screenshots).
Antworten:
Ich werde sagen, dass es nicht möglich ist , die Bildschirm- / Videoaufnahme einer Android-App mit unterstützten Mitteln vollständig zu verhindern. Wenn Sie es jedoch nur für normale Android-Geräte blockieren möchten , ist die SICHERE FLAGGE erheblich.
1) Das sichere Flag blockiert sowohl normale Screenshots als auch Videoaufnahmen.
Siehe die Antwort hier .
2) Es gibt alternative Möglichkeiten zum Erfassen von Bildschirminhalten.
Es kann möglich sein, den Bildschirm einer anderen App auf einem gerooteten Gerät oder mithilfe des SDK zu erfassen.
Beispiel: Es gibt eine Software, mit der Sie den Bildschirm Ihres Telefons über das SDK auf Ihren Computer spiegeln können. Daher kann dort eine Bildschirmaufnahme-Software verwendet werden, die von Ihrer App nicht entdeckt werden kann.
Siehe die Antwort hier .
quelle
Fügen Sie einfach diese Zeile hinzu:
Vor Ihrer
setContentView()
Methode.quelle
So deaktivieren Sie die Bildschirmaufnahme:
Fügen Sie der
onCreate()
Methode folgende Codezeile hinzu :So aktivieren Sie die Bildschirmaufnahme:
Suchen
LayoutParams.FLAG_SECURE
und entfernen Sie die Codezeile.quelle
Für Java-Benutzer schreiben Sie diese Zeile über Ihre
setContentView(R.layout.activity_main);
Für Kotlin-Benutzer
quelle
window?.set...
nicht wissen, ob Sie ein Fenster haben werden.Anscheinend wissen Sie, wie Sie Screenshots in Ihrer App deaktivieren können, und es gibt andere Antworten, die Ihnen dabei helfen. Aber ich werde versuchen, Ihnen einige wichtige Informationen zu geben, die Ihnen niemand gibt.
1) Sie können keine App haben, die 100% sicher vor Screenshots (Foto / Video) ist. Es gibt keine offizielle Möglichkeit , Screenshots in Android zu machen. Wenn eine App Bildschirme aufzeichnet, muss sie einige nicht unterstützte Methoden verwenden (entweder Rooting oder SDK).
Es gibt nur sehr wenig Möglichkeiten, eine App zu blockieren, wenn sie Root-Zugriff zum Aufzeichnen von Bildschirmen verwendet.
2) Niemand hat dieses Problem hier erwähnt, aber seien Sie bei der Verwendung sehr vorsichtig
WindowManager.LayoutParams.FLAG_SECURE
. Bei vielen Geräten (wie beim Samsung Galaxy ACE, z. B. GT-S5830) wurde überprüft, dass dadurch die gesamte Ansicht verschlüsselt wird. So was,Bitte setzen Sie einen Scheck wie folgt,
Es funktioniert perfekt auf ICS-Geräten, also kein Problem.
3) Ich habe auch herausgefunden, dass selbst auf neueren Geräten wie Android 4.3 dies zu Animationsproblemen führt, wenn der Bildschirm gedreht wird. Bitte überprüfen Sie diesen Fehlerbericht.
quelle
Sie können Ihre App als Geräte- / Profilbesitzer erstellen und anrufen
setScreenCaptureDisabled()
. Aus den Dokumenten geht hervor , dass diese API Folgendes tut:Alternativ können Sie eine MDM- Partner-App (Mobile Device Management) werden. OEMs bieten ihren MDM-Partner-Apps zusätzliche APIs zur Steuerung des Geräts. Beispielsweise bietet Samsung eine API zur Steuerung der Bildschirmaufzeichnung auf dem Gerät für ihre MDM-Partner.
Derzeit ist dies die einzige Möglichkeit, Einschränkungen für die Bildschirmaufnahme durchzusetzen.
quelle
Versuche dies:
quelle
Ich habe alle Antworten gesehen, die nur für eine einzelne Aktivität geeignet sind, aber es gibt meine Lösung, die Screenshots für alle Aktivitäten blockiert, ohne der Aktivität Code hinzuzufügen.
registerActivityLifecycleCallbacks
Erstellen Sie zunächst eine benutzerdefinierte Anwendungsklasse und fügen Sie eine hinzu. Registrieren Sie sie dann in Ihrem Manifest.MyApplicationContext.class
Manifest
quelle
Laut dieser offiziellen Anleitung können Sie
WindowManager.LayoutParams.FLAG_SECURE
Ihr Fensterlayout erweitern und es werden keine Screenshots angezeigt.quelle
Ich habe diese Lösung verwendet, um manuelle Schnappschüsse in der App zuzulassen, während die Bildschirmaufnahme im Hintergrund der App nicht zulässig ist. Ich hoffe, sie hilft.
quelle
Über Foto-Screenshot, FLAG_SECURE funktioniert nicht gerootetes Gerät.
Wenn Sie jedoch die Screenshot-Datei überwachen, können Sie verhindern, dass die Originaldatei abgerufen wird.
versuchen , diese ein .
1. Screenshot (Dateimonitor) mit Android Remote Service überwachen
2. Original-Screenshot löschen.
3. Stellen Sie die Bitmap-Instanz bereit, damit Sie sie ändern können.
quelle