Android GPS Konum Belirleme Ve Toast Kullanımı
-
Not lüfen bunu dökümana ekleyelim android yazılımıyla uğraşan müridler için çok faydalı
Dipnot: Alıntıdır hadiyin müridler şöyle sağlam bi gps yapında kullanalım yaw :)
Android üzerinden gelen bir özel kullanıma hitap eden uyarı bildirimi olan toast’ın nasıl kullanıldığını göreceğiz.Bu yazıyı okumadan önce uygulamayı test edecekleri telefonlarının GPS destekliyor ve GPS özelliğinin olmasına dikkat etmenizi tavsiye etmekteyim. Eğer böyle bir probleminiz varsa emulatörden bu uygulamayı ek uygulamaile test edebilirsiniz. Bu durumu konuya dahil etmiş bulunmaktayım. Uygulamamızda GPS verisini alıp ekranda anlık olarak değişimini göstereceğiz. GPS bilgi alımını açıp kapamalarda uyarılar vereceğiz ve bu arada Toast kullanımını öğrenmiş olacağız.
GPS hakkında kısa bir özet geçecek olursak;GPS genelde ne olarak bilinir ?
- Bildiğiniz üzere GPS (Global Positioning System) , küresel konumlama sistemi olarakta bilinmektedir.GPS konumlamamızı nasıl yapmaktadır ?
- GPS, kısaca yörüngedeki uydularımızın dünyayı belirli ölçeklere bölmesi ve birbirleriyle olan doğrulama uzaklığı ile bizim konumumuzu belirlemesidir.Destekleyen aygıtlar bunu nasıl gerçekleştirmektedir ?
- Konumlama verisini çekebilmek için uydudan anlık bilgi istemektedir. Bu bilgi aslında birçok uydunun birbirleriyle pozisyon doğrulaması gerçekleştirmesiyle konum kullanıcıya aktarılır ve kullanıcı bunu herhangi bir uygulamasında yada bilgilendirme amaçlı kullanabilir. Ancak şöyle bir dezavantajı vardır birden cok anlık bilgi alımlarında kimi zaman cihazın yavaş kalmasına sebeb olabilir.Birde tam noktasal konumlama yapamayabilir belirli sapmaları gerçeklemektedir.Tabikide %97′lere varan bir doğruluk ile çalışmaktadır.GPS üzerinden veri alışverişi ücretlimidir ?
- Kesinlikle değildir. Tamamen ücretsizdir.Yapmak istediğimiz uygulamanın amacı ?
- Anlık veri alıp bunu bilgilendirme amacıyla ekranda konumlama metoduyla göstermek.Sıra geldi arkadaşlar android üzerinde bunu nasıl gerçekleyeceğimize öncelikle bir dipnot vermek istiyorum. Uygulamamızı ilk olarak destekleyen bir telefon üzerinde gerçekleştireceğim ardından , destekleyen telefonu olmayan yada öğrenme aşamasında ilk olarak emülatörü tercih eden arkadaşlar için anlatacağım.Şimdi ilk olarak bir android proje dosyası oluşturuyoruz ve projemize başlıyoruz.NOT: Uygulamamızda sadece 1 adet TextView olacak ve 1 aktif xml kullanacağız. Arzu isteğinize göre buton koyup siz bastıkca gelmesini isteyebilirsiniz bunuda gerçeklemeniz gayet kolay.GPS bilgilerimizi alabilmemiz için , ilk olarak bir konum yöneticisi oluşturmalıyız. Bunu da açıklayalım nasıl :1LocationManager konumYoneticisi = (LocationManager)getSystemService(Context.LOCATION_SERVICE);konumYöneticisi , LocationManager sınıfı altında mevcut konum bilgisini çağırır.
Şimdi konum bilgimizi sürekli dinleyecek olan sınıfı , konum dinleyicimizi oluşturuyoruz. Bu sınıf altında 3 adet override’ımız var.
Override , daha önce bir class tarafından oluşturulmuş fonksiyonların class’ı çağırmamızla gelen miras yapısının bozulup önceliğinin kendi oluşturacağımız fonksiyonlar olduğunu ve bilgilerini bu fonksiyonlar üstünden alacağını belirliyoruz.LocationListener’ımızla beraber 3 adet fonksiyonumuz geliyor ve bunlar birisi
onStatusChanged : GPS Servisinin durum bilgisi
onProviderEnable : GPS ‘in aktif duruma getirildiği bilgisi
onProviderDisable : GPS ‘in pasif duruma getirildiği bilgisi
onLocationChanged : GPS’ten alınan konum bilgilerini içerir.01020304050607080910111213141516171819202122LocationListener konumDinleyicisi =newLocationListener() {@OverridepublicvoidonStatusChanged(String provider,intstatus, Bundle extras) {}@OverridepublicvoidonProviderEnabled(String provider) {}@OverridepublicvoidonProviderDisabled(String provider) {}@OverridepublicvoidonLocationChanged(Location loc) {}};Peki biz bunları nasıl kullanacağız ??- onLocationChanged fonksiyonumuz ile bunu sağlayacağız.Konum bilgilerimiz:
Latitude = Enlem
Longtitude = BoylamBu bilgileri onLocationChanged altında bilgilerimizi cağırdığımız onLocationChanged( Location loc ) ‘un yaptığını söyleyebiliriz.
Bu bilgilerimizi çekebilmemiz için :loc.getLatitude();
loc.getLongitude();bu iki fonksiyonumuz bilgilerimizi getirmektedir. Artık herhangi bir şekilde görsel olarak aktarmamız yetecektir.Son olarak yöneticimiz ile dinleyicimizi birbirinede bağlarsak tamamlamış olacağız.1konumYoneticisi.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, konumDinleyicisi);Bu komutumuz herşeyi birbirine bağlamaktadır.
İşin .java olan kısmını hallettik şimdi bu gps bilgisini alabilmemiz için AndroidManifest.xml‘de izin işlemlerini yapmamız gerekmektedir.1"android.permission.ACCESS_FINE_LOCATION">Bu kodumuzun amacı tamamen konum bilgisini kullanıcıya izin vermesidir.Şimdi bu konuda anlaştığımıza göre sıra geldi Toast ( Uyarı ) konumuza bu kısım gayet kolay olup uygulamalarda sık sık görülmektedir. Android kullanıcıları bunu çok sevmektedir. Sadece bir adet dez avantajı vardır. Oda belirli süre ekranda kalmasından dolayı ard arda gelen uyarı bilgilerini gecikmel göndermesidir.1Toast.makeText( getApplicationContext(),Text,Toast.LENGTH_SHORT).show();Toast altında makeText oluşturuyoruz. getApplicationContext‘in yaptığı tamamen class’ımızı belirtmesidir. Text kısmınaString bir bilgi girmemiz yeterlidir. LENGTH_SHORT kısmında yazının boyutunu belirlemekteyiz. İki seçeneğimiz bulunmaktadir .
1. LENGTH_SHORT : küçük boyutta
2. LENGTH_LONG : büyük boyutta göstermektedir.activity_main.xml altında bir small TextView koyduktansonra projemizi tamamlayacak olursak :NOT : Projemizi çalıştırdığımızda çalışmıyorsa GPS veri alımını açmamız gerekmektedir. Aksi halde çalışmayacaktır.MainActivity.javapackage com.alone.gpsdeneme; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final String gpsAcildi = "GPS Acıldı"; final String gpsKapatildi = "GPS Kapalı"; final TextView konumText = (TextView)findViewById(R.id.textView2); LocationManager konumYoneticisi = (LocationManager)getSystemService(Context.LOCATION_SERVICE); LocationListener konumDinleyicisi = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { Toast.makeText( getApplicationContext(),gpsAcildi,Toast.LENGTH_SHORT).show(); konumText.setText("GPS Veri bilgileri Alınıyor..."); } @Override public void onProviderDisabled(String provider) { Toast.makeText( getApplicationContext(),gpsKapatildi,Toast.LENGTH_SHORT).show(); konumText.setText("GPS Bağlantı Bekleniyor..."); } @Override public void onLocationChanged(Location loc) { loc.getLatitude(); loc.getLongitude(); String Text = "Bulunduğunuz konum bilgileri : \n" +"Latitud = " + loc.getLatitude() +"\nLongitud = "+ loc.getLongitude(); konumText.setText(Text); } }; konumYoneticisi.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, konumDinleyicisi); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/gpsBaglanti" tools:context=".MainActivity" /> RelativeLayout>
string.xml
<resources> <string name="app_name">GPSDenemestring> <string name="menu_settings">Settingsstring> <string name="title_activity_main">MainActivitystring> <string name="gpsBaglanti">GPS Bağlantı Bekleniyorstring> resources>
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.alone.gpsdeneme" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">uses-permission> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> intent-filter> activity> application> manifest>
-
Bada için olanınıda ekleyeceğim belki android'de kullanılır çünkü sunucu adresi değiştirmişler bada da
1- Nete bağlanmasını istemiyorsanız *#4097*4097# tuşlayın açılan menüde 3 numaralı user setting e girelim orada 1 numaralı assist method a giriyoruz orada muhtemelen sizdede öyle olması lazım gps+ da siz onu agps yapın ve kaydedin telefon yeniden başlayacak sorun yok (bunu yapmamızdaki neden interneti kullanmadan gps e bağlanmak) ardından telefon yeniden açılınca
Mycity tarafından 21/Haz/13 17:11 tarihinde düzenlenmiştir
2- Tekrar *#4097*4097# tuşlayın ve açılan menüde 3 numaralı user setting e girelim orada 3 numaralı suply setting girelim oradan en altta (server custom fqdn ) de şöyle bir uzantı var http://www.spirent-lcs.com onu siliyoruz ve yerine europe.pool.ntp.org yazıyoruz (bunun altında yatan mantık ise şu; telefon uydulara kilitlenebilmek için bahsettiğimiz server'a bağlanıp doğru saati öğrenmek zorunda); ve kaydediyoruz ve çıkıyoruz ardından telefonu yeniden başlatın ve test etmeye hazırsınız ben ndrive ile test ettim sizde varsa onla test edin ağı kullanmayacak kesinlikle ve hızlı bir şekilde bağlanacaksınız
hepinize kolay gelsin
Not: bu işlem sadece 1.2 için -
ee yokmu android ci ler ses çıkmadı
-
android kullanıcısı olarak ilk yorumu ben yapayım o zaman.
döküman != alıntı
-
BarisYigit bunu yazdı
android kullanıcısı olarak ilk yorumu ben yapayım o zaman.
döküman != alıntı
-
BarisYigit bunu yazdı
android kullanıcısı olarak ilk yorumu ben yapayım o zaman.
döküman != alıntı
altıntı olduğunu yazmamışmıydın yaw
Dipnot: Alıntıdır hadiyin müridler şöyle sağlam bi gps yapında kullanalım yaw :)
Mycity tarafından 22/Haz/13 00:07 tarihinde düzenlenmiştir -
BarisYigit bunu yazdı
android kullanıcısı olarak ilk yorumu ben yapayım o zaman.
döküman != alıntı
+ 999999999999999999²
-
hem cizmek hemde yorum icin.
Öncelikle şunu söylemek istiyorum. Seni biraz kamçılamak hoşuma gidecek.
Bu projeyi yaptığımızda elimize gececek sey sadece konum bilgisi olacaktır. yani;
Enlem :49.66665678546
Boylam:65.75789765432
Gibi boş gibi görünüyor. Ama bunu google map api lerini kullanarak formda gorsel olarak kullanmak daha iyi değil mi? hadi projeni gelistir Atarsa 6 diyorum. senden önce bitirmeyeyim :) -
DuPi bunu yazdıhem cizmek hemde yorum icin.
Öncelikle şunu söylemek istiyorum. Seni biraz kamçılamak hoşuma gidecek.
Bu projeyi yaptığımızda elimize gececek sey sadece konum bilgisi olacaktır. yani;
Enlem :49.66665678546
Boylam:65.75789765432
Gibi boş gibi görünüyor. Ama bunu google map api lerini kullanarak formda gorsel olarak kullanmak daha iyi değil mi? hadi projeni gelistir Atarsa 6 diyorum. senden önce bitirmeyeyim :)tamamda hocam bunda da o apiler kullanılmazmı ki ? yani ek olarak maksat güçlü bir gps ortaya çıkartmak
-
neden cikmasin haftaya kadar kismetse terhis olacam bakalim android takilacam telefondan yaptigim bi programim var suan :) askerde ogrendim javayi androidide :) api olayina yeni yeni deginecem..
-
DuPi bunu yazdıneden cikmasin haftaya kadar kismetse terhis olacam bakalim android takilacam telefondan yaptigim bi programim var suan :) askerde ogrendim javayi androidide :) api olayina yeni yeni deginecem..
hadi bakalım bekliyoz :)

