1 Aralık 2013 Pazar

Android Dersleri 1 - [Location API Kullanımı]

Çoğu Android Cihaz mevcut konumunuzu belirlemenize imkan sağlar. Bu işlem GPS yardımıyla , baz istasyonları üzerinden veya WiFi ağları üstünden gerçekleştirelebilir. Android mevcut coğrafi konumuuzu belirlemek için sizlere API sağlayan  android.location paketini bulundurur.
Android.location paketi hakkında ufak birkaç bilgi vermek gerekirse :
Location Manager:
Location Manager sınıfı Android Location Servisine ulaşmayı sağlar.
LocationProvider:
LocationProvider mevcut konumu bulmayı sağlayan location provider ların üst sınıfıdır.
Android işletim sistemine sahip cihazlarda çeşitli Location Provider lar yer almakta network, gps , passive vb…
Criteria
En iyi Location Provider seçimi için  , provider in nasıl secılecegını tanımlayan Criteria nesnesi kullanılır.
Android Programlarında latitude (enlem) ve longitude(boylam) bilgisini elde ederken kullanabilmemiz için “Location Listener” sınıfı bulunmaktadır.
activity_test.xml

Aldığımız enlem ve boylam değerlerini göstermek amacıyla kullanmış olduğumuz basit bir layout yapısı bulunmaktadır.

LocationListener sınıfını implement ettiğimizde bazı metotları implement etmemiz gerekli. Bu metotları projeye eklediğimizde bize 4 tane ‘override’ edilmiş metot verecek ,bunlardan ‘onLocationChanged’ metodunu kullanmamız yeterli. İsminden de anlaşılacağı gibi bu metodun görevi konumumuzda olan değişiklikleri almak. Bu metodun içinde getLatitude ve getLongitude metotları(double veri döndürürler) ile verilerimizi çekeceğiz.
Uygulama içerisinde almamız gereken bazı izinler bulunmakta.
ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
INTERNET
Eclipse’te emulatörde deniyorsanız DDMS’ten emulatörün GPS ayarlarını değiştirerek uygulamayı deneyebilirsiniz. DDMS e nasıl gireceğiz diyorsanız ona da “Open Perspective” butonuna tıklatıp DDMS i seçeceksiniz. Device kısmından emulatorunuzu seçip “Emulator Control” paneline girince “Location Controls” kısmında Longitude ve Latitude değiştirerek Send dediğinizde GPS bilgileriniz değişmiş olacaktır.
GPS in acık olup olmadıgının kontrolü için kod tavsiyesi: