Ich muss die Betriebssystemversion (WP 8.1 oder W10) in meinem Code der WP8.1-Anwendung überprüfen. Welchen besseren Weg, dies zu tun? Kann Reflexion oder eine spezielle API für diesen Zweck sein?Wie erkennt man, dass die WP8.1-Anwendung unter Windows 10 Mobile gestartet wurde?
Antwort
ich keinen anderen Weg gefunden, dies zu tun, so ist hier mein Ansatz ist.
Die folgende Eigenschaft IsWindows10
erkennt, ob eine Windows 8.1- oder Windows Phone 8.1-App auf einem Windows 10-Gerät (einschließlich Windows 10 Mobile) ausgeführt wird.
#region IsWindows10
static bool? _isWindows10;
public static bool IsWindows10 => (_isWindows10 ?? (_isWindows10 = getIsWindows10Sync())).Value;
static bool getIsWindows10Sync()
{
bool hasWindows81Property = typeof(Windows.ApplicationModel.Package).GetRuntimeProperty("DisplayName") != null;
bool hasWindowsPhone81Property = typeof(Windows.Graphics.Display.DisplayInformation).GetRuntimeProperty("RawPixelsPerViewPixel") != null;
bool isWindows10 = hasWindows81Property && hasWindowsPhone81Property;
return isWindows10;
}
#endregion
Wie funktioniert es?
In Windows 8.1 hat die Package
Klasse eine DisplayName
Eigenschaft, die Windows Phone 8.1 nicht hat. In Windows Phone 8.1 hat die DisplayInformation
Klasse eine RawPixelsPerViewPixel
Eigenschaft, die Windows 8.1 nicht hat. Windows 10 (einschließlich Mobile) verfügt über beide Eigenschaften. So können wir feststellen, auf welchem Betriebssystem die App läuft.
Versuchen Sie, diese System.Environment.OSVersion.Version
Leider unterstützt WP8.1 (XAML) nicht die Eigenschaft OSVersion in der Klasse Environment. –
WP8.1 wird wahrscheinlich nicht in der Lage sein, die W10 App zu installieren. Wenn Sie eine App mit verschiedenen Konfigurationen für Plattformen erstellen, können Sie möglicherweise Präprozessordirektiven verwenden? – Romasz
@Romasz Ich habe die WP8.1 App auf WM10 Emulator getestet, es funktioniert. Und einige Nutzer installieren meine App bereits auf ihren W10-Geräten. Ich möchte vor dem Erstellen einer speziellen UWP-Version in Zukunft keine anderen Build-Konfigurationen erstellen. Ich möchte die Version im Code überprüfen. –
Ok, Sie müssen nur überprüfen, ob WP8.1 auf W10 läuft. Zuerst dachte ich über [diese OSversion] nach (https://msdn.microsoft.com/en-us/library/windows/apps/windows.security.exchangeactivesyncprovisioning.easclientdeviceinformation.operatingsystem), aber wie ich es getestet habe, gibt es WindowsPhone zurück 'für beide Betriebssysteme. – Romasz