July, 2013 | Engin Polat'ın Windows, Web, Mobile ve Game içerikli programcılık sitesi

Arşiv

2013 July ayı için arşiv

Windows Phone 8 ile telefonun operatörünü bulma

27 July 2013 Yorum yapılmamış

Windows Phone 8 için geliştirdiğiniz uygulamanın çalıştığı telefonun bağlı olduğu operatör‘ü bulmak isteyebilirsiniz.

Özellikle operatör‘e özel seçenekler çıkartmak veya kısıtlamalar getirmek için bunu yapmaya ihtiyacınız olabilir.

Windows Phone 8 SDK içerisinde yer alan DeviceNetworkInformation sınıfında Mobil Operator bilgisini kolaylıkla almanızı sağlayan static tanımlı CellularMobileOperator özelliği mevcuttur.

Hemen yeni bir proje oluşturarak kullanımını inceleyelim;

MainPage.xaml dosyasını açarak sayfanın tasarımını değiştirelim. StackPanel içerisine bir Button nesnesi ekleyelim, Content özelliğine Tıkla, Background özelliğine StaticResource PhoneAccentBrush, Height özelliğine 120 değerlerini verelim;

<phone:PhoneApplicationPage
	x:Class="OperatorSample.MainPage"
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
	xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
	xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
	xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
	mc:Ignorable="d"
	FontFamily="{StaticResource PhoneFontFamilyNormal}"
	FontSize="{StaticResource PhoneFontSizeNormal}"
	Foreground="{StaticResource PhoneForegroundBrush}"
	SupportedOrientations="Portrait" Orientation="Portrait"
	shell:SystemTray.IsVisible="True">

	<StackPanel>
		<StackPanel x:Name="TitlePanel" Margin="12,17,0,28">
			<TextBlock Text="http://www.enginpolat.com" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
			<TextBlock Text="operatör" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
		</StackPanel>

		<StackPanel Margin="12,0,12,0">
			<Button Content="Tıkla" Background="{StaticResource PhoneAccentBrush}" Height="120" Click="Button_OnClick" />
		</StackPanel>
	</StackPanel>

</phone:PhoneApplicationPage>

Background özelliğine StaticResource listesinden PhoneAccentBrush değerini vererek, buton’un arkarengini kullanıcının tercih ettiği tema rengine ayarlamış olduk;

Button‘a tıklandığında Button_OnClick() method’u tetiklenecek;

private void Button_OnClick(object sender, RoutedEventArgs e)
{
	var operatorAdi = DeviceNetworkInformation.CellularMobileOperator;

	MessageBox.Show(operatorAdi);
}

Butona tıkladığımızda ekrana, uygulamanın kurulu olduğu telefonun mobil operatörü gelmeli;

Windows Phone başlangıç sayfasını belirlemek

17 July 2013 Yorum yapılmamış

Windows Phone projelerinde uygulamanın başlangıç sayfası MainPage.xaml dosyasıdır.

MainPage.xaml dosyası proje ilk oluşturulduğunda projenin root‘unda yer alır.

Bazı durumlarda proje oluşturulurken üretilen bu dosyanın yerine başka bir dosyayı başlangıç ekranı yapmak isteriz.

Yapmamız gereken WMAppManifest.xml dosyasını açmak, Application UI tabında yer alan Navigation Page değerine istediğimiz sayfanın dosya adını yazmak;

Örneğin, uygulamanın ekranlarını Views altında bir klasörde toplamak istiyorsak, başlangıç ekran dosyasının yolunu yukarıdaki gibi belirleyebiliriz.

Windows Phone 8 Beta uygulama geliştirme ile ilgili sıkça sorulan sorular

16 July 2013 Yorum yapılmamış

Katıldığım etkinliklerde, twitter üzerinden ve mail adresime gönderilen sorulardan, Windows Phone 8 için geliştirilen uygulamanın beta test‘e açılmasına ilişkin olanları ve cevaplarını aşağıda toparlamaya çalıştım;

Beta olarak Windows Phone Marketplace’e gönderdiğim uygulama ne zamana kadar marketplace’de yer alır?
Gönderdiğiniz uygulama başarılı bir şekilde yayına girdikten sonra 90 gün boyunca marketplace’de yer alacaktır. Eğer hangi uygulamalarınızın beta test sürecinde olduğunu unutursanız her zaman developer hesabınızla giriş yapıp, uygulamalarım listesinden beta uygulamalarım seçeneğini işaretleyebilirsiniz

Süresi dolduktan sonra uygulamaya ne olur?
Siz ve beta test süresi boyunca uygulamayı telefonlarına yüklemiş olan kullanıcılar uygulamayı kullanamazlar. Beta test sürecine dahil olmuş kullanıcılar ya uygulamayı telefonlarından kaldırabilirler ya da size geribildirim yapabilirler

Beta test sürecinde olan uygulama yükleyenlerin telefonlarından silinebilir mi?
Hayır, developer hesabınız üzerinden bunu yapabilmeniz mümkün değil. Sadece uygulamayı yüklemiş olan kullanıcılar telefonlarından uygulamayı kaldırabilirler

Developer hesabımdan beta test sürecindeki uygulamayı kaldırsam ne olur?
Beta tester olarak tanımlanmış kişilerden uygulamayı o ana kadar yüklemeyenler artık uygulamayı göremezler ve telefonlarına yükleyemezler. Yüklemiş olanların telefonlarından kendiliğinden silinmez

Bir uygulamaya beta tester olabilmek için Microsoft Live hesabı sahip olmak zorunlu mu?
Evet, beta tester listesine sadece Microsoft Live hesaplar dahil edilebiliyor

Beta test sürecine alınmış uygulama ücretli olabilir mi?
Hayır, beta test sürecindeki uygulamalar ücretli olamaz

In-App Purchase özelliği beta test sürecinde test edilebilir mi?
Evet, hatta Microsoft In-App Purchase özelliğinin en doğru beta test sürecinde test edileceğini söylüyor

Beta test sürecindeki uygulamalar Windows Phone Marketplace’de gizli midir?
Evet, beta test sürecindeki tüm uygulamalar marketplace’de gizlidir. Aranarak bulunamazlar, sadece beta tester listesine dahil olan kullanıcılar ilgili uygulamayı görebilir ve telefonuna yükleyebilir

90 günlük beta test süresi değiştirilebilir mi?
Hayır, süreyi kısaltmak veya uzatmak mümkün değil. Beta süresi’ni uzatmak için tek yapabileceğiniz, uygulamayı tekrar beta test sürecine sokup, 90 gün daha kazanmak

Beta test sürecindeki uygulamaya güncelleme çıkabilir mi?
Evet, beta test sürecindeki uygulamalar güncellenebilir. Telefonlarına yüklemiş olan beta tester listesinde kullanıcılar güncellemeyi görüp uygulamayı güncelleyebilirler

Windows Phone 8 ile telefonun koordinatlarını bulma

16 July 2013 2 yorum

Windows Phone 8 SDK ile birlikte coğrafi konum API güncellendi, yeni API ile birlikte Geolocator sınıfı kullanımımıza açılmış oldu.

Windows Phone 7.5 SDK‘da yer alan GeoCoordinateWatcher sınıfı halen kullanımda, fakat özellikle Windows Phone 8 destekleyecek uygulamaların yeni Geolocator sınıfını kullanması tavsiye ediliyor.

Geolocator sınıfını kullanarak cihazın yerini bulmamız ve takip edebilmemiz mümkün.

Telefonun yerini bir defa bulmamız gerekiyorsa basitçe GetGeopositionAsync() methodunu çağırmamız yeterli.

Geolocator sınıfı ayrıca, PositionChanged event‘i sayesinde konumu takip edebilmemize de olanak sağlıyor.

Uygulama içerisinde konum bilgisini okuyabilmek için WMAppManifest.xml dosyasında Capabilities tabında yer alan ID_CAP_LOCATION kutucuğunu işaretlemiş olmamız gerekiyor.

Geolocator sınıfı Windows.Devices.Geolocation namaspace’i içerisinde tanımlıdır, kullanabilmek için öncelikle ilgili sınıfın using alanına eklememiz gerekiyor;

using Windows.Devices.Geolocation;

Ayrıca GetGeopositionAsync() method’u asenkron bir method olduğu için başına await anahtar kelimesini eklemeliyiz ve ilgili method’u async anahtar kelimesi ile işaretlemeliyiz;

private async void GetLocation()
{
	Geolocator locator = new Geolocator();
	Geoposition position = await locator.GetGeopositionAsync();
	Geocoordinate coordinate = position.Coordinate;
	lblLatitude.Text = "Lat : " + coordinate.Latitude;
	lblLongitude.Text = "Long: " + coordinate.Longitude;
}

Sonuçta aşağıdaki ekranı görmemiz lazım;

Windows Phone uygulamalarını programatik olarak kapatmak

12 July 2013 1 yorum

Windows Phone uygulamalarını programatik olarak kapatmak sıklıkla ihtiyaç duyacağımız bir şey değildir. Seyrekte olsa uygulamanızı programatik olarak sonlandırmak isteyebilirsiniz.

Özellikle bankacılık uygulaması gibi yüksek güvenlik gerektiren uygulamalarda, uygulamanın tamamen kapatıldığından emin olmanız gerekebilir.

Application.Current.Terminate();

Bu kod parçası sayesinde uygulamanızı komple kapatacaksınız. Back butonuna basarak uygulamanıza geri dönemeyeceksiniz.