私はWindows用に作成したアプリがあります:PC /タブレット8.1、モバイル/携帯電話8.1、UWP 10。Windowsアプリケーション(UWP/PC /タブレット8.1 /モバイル8.x)のオペレーティングシステム(OS)を確認する方法?
これはC#を使用したWinRTアプリです。
アプリに広告バナーを配置するには、オペレーティングシステムごとに個別の広告ユニットIDを作成する必要があります。
現在、どのオペレーティングシステムが使用されているかを判断する方法はありますか?
コードを使用することによって使用されているデバイスをチェックすることが可能である:オペレーティングシステムがWindows 8.1またはWindows 10であるかどうかを知る方法
#if WINDOWS_PHONE_APP
isWindowsPhoneApp = true;
#else
isWindowsPhoneApp = false;
#endif
しかし?
UPDATE:
私はC#/ XAMLのためのOSのバージョンを得ることについて興味深い記事に出くわしています:
Windows Store Apps: Get OS Version, beginners tutorials (C#-XAML)
それはWindows.SystemかどうかをチェックするためにSystem.Type.GetTypeを使用しています。 Profile.AnalyticsVersionInfoはnullを返します。
コードを修正してテストしましたが、Visual Studioエミュレータとシミュレータで動作するようです。私はWindows 10コンピュータを使用しているので、Windows 8.1コンピュータをテストすることはできませんが、Windows Phone 8.1およびWindows Mobileの場合は正確でした。私は実際の電話機でテストしていません。
したがって、Windows 10でのみ利用可能なAnalyticsVersionInfoのタイプを確認すると、OSによってtrueまたはfalseが返されるようです。
リリースバージョンで使用するには、次のコードを使用することをおすすめしますか?
var analyticsVersionInfoType = Type.GetType("Windows.System.Profile.AnalyticsVersionInfo, Windows, ContentType=WindowsRuntime");
var isWindows10 = analyticsVersionInfoType != null;
displayTextBlock.Text = "Is Windows 10: " + isWindows10;
UPDATE:
ワンライナー:
var isWindows10 = Type.GetType("Windows.System.Profile.AnalyticsVersionInfo, Windows, ContentType=WindowsRuntime") != null;
この.NETコードは、WinRTアプリケーションでは機能しません。また、「重要」と書かれているページの最初の発言は、「このプロパティの値を取得してオペレーティングシステムのバージョンを判断することはお勧めしません」ということです。 – theMaxx