Ho bisogno di controllare la versione del sistema operativo (WP 8.1 o W10) nel mio codice dell'applicazione WP8.1. Quale modo migliore per farlo? Può essere una riflessione o qualche API speciale per questo scopo?Come rilevare che l'app WP8.1 è stata avviata su Windows 10 Mobile?
risposta
non ho trovato altro modo per fare questo, quindi ecco il mio approccio.
La seguente proprietà IsWindows10
rileva se un'applicazione Windows 8.1 o Windows Phone 8.1 è in esecuzione su un dispositivo Windows 10 (incluso Windows 10 Mobile).
#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
Come funziona?
In Windows 8.1 la classe Package
ha una proprietà DisplayName
, che Windows Phone 8.1 non ha. In Windows Phone 8.1 la classe DisplayInformation
ha una proprietà RawPixelsPerViewPixel
, di cui Windows 8.1 non dispone. Windows 10 (incluso il cellulare) ha entrambe le proprietà. È così che possiamo rilevare su quale sistema operativo è in esecuzione l'app.
Prova questa System.Environment.OSVersion.Version
Sfortunatamente WP8.1 (XAML) non supporta la proprietà OSVersion nella classe Ambiente. –
- 1. Come rilevare se un'applicazione OS X è già stata avviata
- 2. Rileva che un'applicazione è stata avviata nello stato di sfondo?
- 3. L'applicazione non è stata avviata correttamente (0xc000007b)
- 4. Come distribuire l'app Windows Phone 8.1 sul dispositivo Windows 10 Mobile?
- 5. Come ottenere l'oggetto View su cui è stata avviata l'animazione ......?
- 6. La mia applicazione è stata avviata manualmente?
- 7. Sonarqube Webapp non è stata avviata
- 8. Rilevare se un'applicazione è stata avviata da un file system di sola lettura su OS X
- 9. Windows 10 UWP targeting solo per Windows 10 mobile
- 10. L'applicazione non è stata avviata in tempo
- 11. Come rilevare che Windows è bloccato?
- 12. Android: Rileva un'altra applicazione è stata avviata la riproduzione audio
- 13. Colore barra di stato della schermata di avvio su Windows 10 Mobile
- 14. Come posso rilevare se la mia applicazione è in esecuzione su Windows 10
- 15. Realm su Windows 10
- 16. La mia app per Android può rilevare se è stata avviata da Eclipse?
- 17. Come sviluppare Windows 10 uwp sul dispositivo reale (mobile)?
- 18. Rileva che la tastiera su schermo è stata visualizzata su Windows Phone 7
- 19. Ottenere transazione non è stata avviata correttamente utilizzando Spring Hibernate
- 20. Come faccio a rilevare modalità snap stretta su Metro di IE 10 su Windows 8
- 21. Verificare che un'attività sia stata avviata con FLAG_ACTIVITY_CLEAR_TOP
- 22. Determinare se l'applicazione iOS è stata avviata tramite Siri
- 23. Perché la transizione è stata avviata con l'autofocus?
- 24. Come installare gradle su WINDOWS 10
- 25. Rilevare quale query reattiva è stata attivata
- 26. di cattura video con UPLOAD per Windows 10 + mobile
- 27. Verificare quando la sessione R è stata avviata?
- 28. Installazione di Heroku Toolbelt su Windows 10
- 29. Come si rileva che Windows Mobile è passato alla modalità continuum?
- 30. Windows 10 Sleep Issue. Grafica che scompare
WP8.1 probabilmente non sarà in grado di installare l'app W10. Se crei un'app con diverse configurazioni per piattaforme, potresti utilizzare le direttive del preprocessore? – Romasz
@Romasz Ho provato la mia app WP8.1 su emulatore WM10, funziona. E alcuni utenti già installano la mia app sui loro dispositivi W10. Non voglio creare configurazioni di build diverse prima di creare una versione UWP speciale in futuro. Voglio controllare la versione nel codice. –
Ok, quindi è solo necessario verificare se WP8.1 gira su W10. Per prima cosa ho pensato a [questa OSVERSIONE] (https://msdn.microsoft.com/en-us/library/windows/apps/windows.security.exchangeactivesyncprovisioning.easclientdeviceinformation.operatingsystem), ma come ho provato restituisce 'WindowsPhone 'per entrambi i sistemi operativi. – Romasz