2013-07-02 16 views
7

chcę znać numer modelu urządzenia programowo, jak to pokazano w ustawieniach około stronie about pageinformacji o Windows Phone (numer modelu)

Obecnie używam

Microsoft.Phone.Info.DeviceStatus.DeviceName 

ale to nie pomaga i daje inną typową wartość. Proszę mi pomóc, jak mogę uzyskać model telefonu/nazwę jak powyżej.

+0

Na której telefon ty testowania kodu oraz jaką wartość otrzymujesz z połączeń z 'DeviceStatus.DeviceName' lub' DeviceStatus.DeviceManufacturer'? – Haspemulator

+0

Testowałem na Lumii 520 i DeviceStatus.DeviceName daje wartość taką jak RM-914_im_india_389 i DeviceStatus.DeviceManufacturer daje wartość Nokia, ale rozwiązałem to za pomocą [PhoneNameResolver] (https://github.com/ailon/PhoneNameResolver) zgodnie z sugestią [Olivier Payen] (http://stackoverflow.com/questions/17425016/information-about-windows-phone-model-number?answertab=votes#tab-top) – Jatin

Odpowiedz

7

Należy użyć PhoneNameResolver, prostą klasę, która rozwiązuje niejasnych urządzeń nazwiska jak

RM-885_apac_prc_250

do przyjaznych nazw handlowych jak

Nokia Lumia 720

Oto przykładowy kod:

var phone = PhoneNameResolver.Resolve(
    DeviceStatus.DeviceManufacturer, DeviceStatus.DeviceName); 
SomeTextBox.Text = phone.FullCanonicalName; 

Więcej informacji w tym blogu: http://devblog.ailon.org/devblog/post/2013/01/21/Introducing-PhoneNameResolver%E2%80%93a-lib-to-decipher-Windows-Phone-models.aspx

+0

dzięki temu właśnie tego szukałem – Jatin

0

można pobrać DeviceName przy użyciu rozszerzonych właściwości z PhoneInfo, czyli here's the link. Przetestowane i działające do dziś;)

Ciesz się.

+2

Wydaje się, że daje to ten sam wariant nazwy (RM-914_im_india_389) jako użycie niezatwierdzonej nazwy DeviceStatus.DeviceName. – GrahamW

1

można użyć funkcji takich jak to: -

 public static string getDeviceInfo(bool asList = false) 
    { 
     string r = ""; 

     Geolocator locationservice = new Geolocator(); 

     if (DeviceNetworkInformation.CellularMobileOperator != "") r += "CellularMobileOperator: " + DeviceNetworkInformation.CellularMobileOperator + Environment.NewLine; 
     r += "CellularDataEnabled: " + DeviceNetworkInformation.IsCellularDataEnabled + Environment.NewLine; 
     r += "WiFiEnabled: " + DeviceNetworkInformation.IsWiFiEnabled + Environment.NewLine; 
     r += "IsNetworkAvailable: " + DeviceNetworkInformation.IsNetworkAvailable + Environment.NewLine; 
     r += "Hardware Identifier: " + Convert.ToBase64String((byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId")) + Environment.NewLine; 
     r += "Location Services Permission: " + locationservice.LocationStatus + Environment.NewLine; 

     r += "Language: " + CultureInfo.CurrentCulture.EnglishName + Environment.NewLine; 
     r += "Locale: " + CultureInfo.CurrentCulture.Name + Environment.NewLine; 
     //r += "Background Service Enabled: " + ScheduledActionService.Find("PeriodicAgent").IsEnabled + Environment.NewLine; 
     r += "Runtime Version: " + Environment.Version + Environment.NewLine; 
     r += "Maximum Memory: " + (DeviceStatus.DeviceTotalMemory/(1024 * 1024)) + "M" + Environment.NewLine; 
     r += "Maximum Memory Available: " + (DeviceStatus.ApplicationMemoryUsageLimit/(1024 * 1024)) + "M" + Environment.NewLine; 
     r += "Peak Memory Use: " + (DeviceStatus.ApplicationPeakMemoryUsage/(1024 * 1024)) + "M" + Environment.NewLine; 
     r += "Charger: " + DeviceStatus.PowerSource + Environment.NewLine; 
     r += "DeviceFirmwareVersion: " + DeviceStatus.DeviceFirmwareVersion + Environment.NewLine; 
     r += "DeviceManufacturer: " + DeviceStatus.DeviceManufacturer + Environment.NewLine; 
     r += "OS Version: " + Environment.OSVersion + Environment.NewLine; 
     r += "User ID: " + settings[KeyString.USER_ID] + Environment.NewLine; 
     var phone = PhoneNameResolver.Resolve(DeviceStatus.DeviceManufacturer, DeviceStatus.DeviceName); 
     r += "Phone model(userfriendly form):" +phone.FullCanonicalName ; 
     return r; 
    }