Zaman zaman Windows Phone aygıtınıza ait bilgilere ulaşmanız gerekebilir. Böyle bir durumda emulatör yerine gerçek bir aygıt üzerinde test etmemiz uygun olacaktır. Aşağıdaki örnekte şu bilgilere ulaşmaya çalışacağız:
- Manufacturer
- Device Name
- Device ID
- Firmware Version
- Hardware Version
- Total Memory
- Application Current Memory Usage
- Application Peak Memory Usage
Bu örnekte, DispatcherTimer vasıtasıyla her 3 saniyede bir bilgileri güncelleyen 8 adet Textblock nesnesine sahip bir uygulama geliştireceğiz. Uygulamamızın görünüşü aşağıdaki gibi olacaktır.
Aşağıda, ilgili Textblock nesneleriyle çekeceğiniz bilgiler eşleştirilmiştir:
- Manufacturer =textBlock2
- Device Name =textBlock4
- Device ID =textBlock6
- Firmware Version =textBlock8
- Hardware Version =textBlock10
- Total Memory =textBlock12
- Application Current Memory Usage =textBlock14
- Application Peak Memory Usage =textBlock16
Öncelikle bir DispatcherTimer nesnesi oluşturun. DispatcherTimer nesnesi belirli zaman aralıklarında tekrar eden işleri gerçekleştirmek için kullanabileceğiniz bir nesnedir. Elbette, bunu dahil etmek için, System.Windows.Threading namespace’ini projenize eklemeniz gerekir.
DispatcherTimer timer;
Device ID bilgisini string formatında çekmek için bir değişken tanımlayın:
public static string val;
Device ID’yi byte tipinde döndüren ve bunu val adlı string değişkene aktaran bir fonksiyon geliştirin. DeviceExtendedProperties cihaza ait özelliklere erişmek için kullanacağımız sınıfın ismidir.
public static byte[] GetDeviceUniqueID()
{
byte[] result = null;
object uniqueId;
if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId))
{
result = (byte[])uniqueId;
}
val = Convert.ToBase64String(result);
return result;
}
Device ID’yi doğrudan çekseydik, bize byte tipinde veriler gönderecekti. Dolayısıyla burada yaptığımız, aslında Unique ID’yi bulmak oldu. Şimdi yapacağımız işlemde DispatcherTimer nesnesini kullanacak ve DeviceUniqueID’yi bulacağız. TimeSpan nesnesi zaman değerlerini istediğimiz formatlarda ayarlamamıza olanak sağlar. Örneğimizde 3 parametre yer almaktadır: Saat, Dakika, Saniye. Yani her 3 saniyede bir zamanlayıcımızın tetiklenmesini sağlıyoruz.
timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 3);
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
GetDeviceUniqueID();
Elbette, timer_Tick fonksiyonunu da unutmayın:
void timer_Tick(object sender, EventArgs e)
{
try
{
textBlock2.Text=DeviceExtendedProperties.GetValue("DeviceManufacturer").ToString();
textBlock4.Text = DeviceExtendedProperties.GetValue("DeviceName").ToString();
textBlock6.Text = DeviceExtendedProperties.GetValue("DeviceID").ToString();
textBlock8.Text = DeviceExtendedProperties.GetValue("DeviceFirmwareVersion").ToString();
textBlock10.Text = DeviceExtendedProperties.GetValue("DeviceHardwareVersion").ToString();
textBlock12.Text = DeviceExtendedProperties.GetValue("DeviceTotalMemory").ToString();
textBlock14.Text = DeviceExtendedProperties.GetValue("ApplicationCurrentMemoryUsage").ToString();
textBlock16.Text = DeviceExtendedProperties.GetValue("ApplicationPeakMemoryUsage").ToString();
}
catch (Exception ex)
{
}
}
DeviceExtendedProperties kullanarak WP aygıtına ait bilgilere erişebilirsiniz.