Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
32 lines (26 sloc) 2.42 KB
layout section-type title category tags
post
post
Screenshots der eigenen Windows Phone App verhindern
Development
mobile
windows phone
silverlight
winprt

Cannot capture protected ContentEs kann Situationen geben, in denen man gerne verhindern möchte, dass der Benutzer der eigenen App einen Screenshot (Lautstärke hoch + Ein-/Aus-Button kurz drücken) erstellen kann. Sei es während der Darstellung von internen Zahlen / Daten im Enterprise-Umfeld, oder auch bei einer App wie Snapchat.

[appbox windowsphone 82fa6341-28dc-4203-bd08-9749b167bc4b]

Es gibt ein API mit dem genau das verhindert werden kann, sowohl für die Silverlight 8.0 Apps (ab GDR 1) als auch für die WinPRT-Apps. Wenn der Benutzer dann versucht einen Screenshot anzufertigen erhält er die Meldung angezeigt, dass das bei geschützten Inhalten nicht funktioniert. Jedoch ist in der Silverlight-API die entsprechende Eigenschaft versteckt und deshalb nur über Umwege erreichbar.

Windows Phone 8.1 WinPRT-App:

Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().IsScreenCaptureEnabled = false;

Windows Phone 8.1 Silverlight-App:

public static void SetScreenCaptureEnabled(this Microsoft.Phone.Controls.PhoneApplicationPage page, bool enabled)
{
    var propertyInfo =
        typeof (Microsoft.Phone.Controls.PhoneApplicationPage).GetProperty("IsScreenCaptureEnabled");
 
    if (propertyInfo != null)
    {
        propertyInfo.SetValue(page, enabled);
    }
}

Eine schöne Lösung als Attached-Property gibt es auch auf GitHub in den XamlEssentials.

Das jemand sich Daten abschreibt oder auch mit einer Kamera vom Display abfotografiert, kann man so natürlich trotzdem nicht verhindern.