2015-11-21 7 views
5

मुझे WP8.1 एप्लिकेशन के मेरे कोड में ओएस संस्करण (WP 8.1 या W10) की जांच करने की आवश्यकता है। ऐसा करने का बेहतर तरीका क्या है? इस उद्देश्य के लिए प्रतिबिंब या कुछ विशेष एपीआई हो सकता है?विंडोज 10 मोबाइल पर लॉन्च किया गया WP8.1 ऐप कैसे पता लगाया जाए?

+0

WP8.1 शायद W10 ऐप इंस्टॉल करने में सक्षम नहीं होगा। यदि आप प्लेटफॉर्म के लिए अलग-अलग कॉन्फ़िगरेशन के साथ ऐप बनाते हैं, तो हो सकता है कि आप प्रीप्रोसेसर निर्देशों का उपयोग कर सकें? – Romasz

+0

@Romasz मैंने WM10 एमुलेटर पर अपना WP8.1 ऐप का परीक्षण किया, यह काम करता है। और कुछ उपयोगकर्ता पहले से ही अपने डब्ल्यू 10 उपकरणों पर अपना ऐप इंस्टॉल करते हैं। मैं भविष्य में विशेष यूडब्ल्यूपी संस्करण बनाने से पहले विभिन्न बिल्ड कॉन्फ़िगरेशन बनाना नहीं चाहता हूं। मैं कोड में संस्करण संस्करण चाहता हूँ। –

+0

ठीक है, तो आपको केवल यह जांचने की आवश्यकता है कि WP8.1 W10 पर चलता है या नहीं। सबसे पहले मैंने [यह ओएसवर्जन] (https://msdn.microsoft.com/en-us/library/windows/apps/windows.security.exchangeactivesyncprovisioning.easclientdeviceinformation.operatingsystem) के बारे में सोचा था, लेकिन जैसा कि मैंने परीक्षण किया है, यह 'विंडोजफोन' देता है 'दोनों ऑपरेटिंग सिस्टम के लिए। – Romasz

उत्तर

4

मैं यह करने के किसी अन्य तरीके से इसलिए यहाँ नहीं मिला, मेरे दृष्टिकोण है की कोशिश करो।

निम्नलिखित संपत्ति IsWindows10 पता चलता है कि Windows 8.1 या Windows Phone 8.1 ऐप Windows 10 (Windows 10 मोबाइल सहित) डिवाइस पर चल रहा है या नहीं।

#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 

यह कैसे काम करता है?

विंडोज 8.1 में Package कक्षा में DisplayName संपत्ति है, जो विंडोज फोन 8.1 नहीं है। विंडोज फोन 8.1 में DisplayInformation कक्षा में RawPixelsPerViewPixel संपत्ति है, जो विंडोज 8.1 में नहीं है। विंडोज 10 (मोबाइल समेत) दोनों गुण हैं। इस तरह हम यह पता लगा सकते हैं कि ऐप किस ओएस पर चल रहा है।

-1
+2

दुर्भाग्य से WP8.1 (XAML) वर्ग पर्यावरण में संपत्ति OSVersion का समर्थन नहीं करता है। –

संबंधित मुद्दे