wordpress tema adresinden indirlmiştir.

Android ile Konum Servisleri

By Admin, 21 Şubat 2017

Merhaba arkadaşlar,

Bugün sizlerle beraber Android telefonunuzdaki GPS servislerini kullanarak konum bilgilerine erişme konusunu irdeleyeceğiz.  Öncelikle bu konuya geçmeden önce coğrafi koordinatlardan bahsetmek isterim.
Dünyamızın kendine has bir şekli vardır ki bu şekle Geoit denir. Dünyamızın üzerinden geçen yatay ve dikey doğrular vardır. Biz bu doğrulara sırasıyla enlem(Latitude) ve boylam(Longitude) deriz. Bu doğrulara ait değerler ise bizim konumumuzu belirler.

Ülkemiz, Kuzey Yarım Küre’de, 36-42 derece kuzey enlemleriyle 26-45 derece doğu boylamlarında arasında yer alır.

Gelelim işin Android kısmına. Android işletim sistemi, yüklü olduğu cihazlara GPS kullanımı ve bu bilgilerin kullanıcı tarafından izin verilmiş uygulamalarla paylaşımı konusunda imkan sağlar.

 

1)Gerekli İzinler

AndroidManifest.xml dosyanızı açın ve aşağıdaki izinleri ekleyin.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

2)Layout Tasarımı

Şimdi ise uygulamamızın arayüz tasarımını yapacağız. Ve bize hayati derecede lazım olan şey 2 adet textview. Çünkü biz bu textviewlere yazdıracağız aldığımız enlem ve boylam değerlerini. Aşağıdaki kodlar kodları layout dosyanıza eklerseniz, bizim için yeterli olur.

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/txtEnlem"
    android:textAlignment="center"
    android:textSize="21sp"
    android:textColor="#ffffff"/>
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/txtBoylam"
    android:textAlignment="center"
    android:textSize="21sp"
    android:textColor="#ffffff"/>

 

3)Kodlama

Activity sınıfınızı açın ve LocationListener sınıfını implements edin. Hata verecektir ve sizden implemente edilen arayüze ait methodları eklemenizi isteyecetir. Implement methods diyerek bu hatayı çözebilirsiniz.
Son durumda şu şekilde.

public class MainActivity extends Activity implements LocationListener

sonrasında sınıfın hemen içinde en üst kısımda her yerden erişebilmek için bir global değişken tanımlıyoruz.

public LocationManager locationManager;
TextView txtEnlem,txtBoylam;

Sonra ise onCreate methodunun içine geliyoruz ve uygulama açılır açılmaz locationManager nesnemizin bir örneğini yaratıyoruz. Ayrıca enlem ve boylam değerlerini yazdıracağımız TextViewlerimizin de örneklerini yaratıyoruz.

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
txtEnlem=(TextView)findViewById(R.id.txtEnlem);
txtBoylam=(TextView)findViewById(R.id.txtBoylam);

Ardından da AndroidManifest dosyasında eklediğimiz izinlerin bir de RunTime sırasında istenmesini sağlamak amacıyla aşağıdaki kodu ekliyoruz.

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);

Bir sonraki adımda ise LocationManager nesnemizin güncel konumlardan haberdar olabilmesi için aşağıdaki kodu ekliyoruz. 3000 değerinin girildiği parametre saniyeyi ifade eder ve 3 saniyede bir güncelleme alınacak anlamına gelir.

try
{
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 10, this);
}
catch (SecurityException ex)
{
    Toast.makeText(getApplicationContext(),ex.getMessage().toString(),Toast.LENGTH_LONG).show();
}

artık onCreate methoduyla işimiz tamamlanmış oluyor ve bütün ayarlamaları da yapmış oluyoruz. Şimdi herhangi bir konum değişikliği olduğunda bir şey olmasını sağlamak için LocationListener arayüzünü implemente ettiğimizde eklenen 4 methoddan 1’i olan onLocationChanged methodunun içini doldurmaya geldi sıra. Aşağıdaki kod ile her konum değişikliği olduğunda yeni konumun enlem ve boylam değerlerini alıp ekrana yazdıracağız.

txtEnlem.setText("Enlem:"+location.getLatitude());
txtBoylam.setText("Boylam:"+location.getLongitude());

Evet Arkdadaşlar bugünde Android ve Konum servisleriyle ilgili konumuzu işledik. Umarım faydalı bir yazı olmuştur.

Örnek projeye buradan ulaşabilirsiniz.

What do you think?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir