folder Tahribat.com Forumları
linefolder Mobil Programlama
linefolder Android GPS Konum Belirleme Ve Toast Kullanımı



Android GPS Konum Belirleme Ve Toast Kullanımı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mycity
    Mycity's avatar
    Banlanmış Üye
    Kayıt Tarihi: 01/Şubat/2011
    Erkek

    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 :
    1
    LocationManager 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.
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    LocationListener konumDinleyicisi = new LocationListener() {
     
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
     
    }
     
    @Override
    public void onProviderEnabled(String provider) {
     
    }
     
    @Override
    public void onProviderDisabled(String provider) {
     
    }
     
    @Override
    public void onLocationChanged(Location loc) {
     
    }
    };
    Peki biz bunları nasıl kullanacağız ??- onLocationChanged fonksiyonumuz ile bunu sağlayacağız.
    Konum bilgilerimiz:
    Latitude = Enlem
    Longtitude = Boylam
    Bu 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.
    1
    konumYoneticisi.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.
    1
    Toast.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.java
     
    package 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>
     
     

    Bazıları sadece konuşur bazıları ise hayalleri ile dünya'ya yön verir.. Mycity
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mycity
    Mycity's avatar
    Banlanmış Üye
    Kayıt Tarihi: 01/Şubat/2011
    Erkek

    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

    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

    Mycity tarafından 21/Haz/13 17:11 tarihinde düzenlenmiştir

    Bazıları sadece konuşur bazıları ise hayalleri ile dünya'ya yön verir.. Mycity
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mycity
    Mycity's avatar
    Banlanmış Üye
    Kayıt Tarihi: 01/Şubat/2011
    Erkek

    ee yokmu android ci ler ses çıkmadı


    Bazıları sadece konuşur bazıları ise hayalleri ile dünya'ya yön verir.. Mycity
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    baristbt
    baristbt's avatar
    Kayıt Tarihi: 20/Nisan/2011
    Erkek

    android kullanıcısı olarak ilk yorumu ben yapayım o zaman.

    döküman != alıntı


    http://www.leyladansonra.com/
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    akustikelektrik
    akustikelektrik's avatar
    Kayıt Tarihi: 09/Şubat/2013
    Erkek
    BarisYigit bunu yazdı

    android kullanıcısı olarak ilk yorumu ben yapayım o zaman.

    döküman != alıntı

     

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mycity
    Mycity's avatar
    Banlanmış Üye
    Kayıt Tarihi: 01/Şubat/2011
    Erkek
    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

    Bazıları sadece konuşur bazıları ise hayalleri ile dünya'ya yön verir.. Mycity
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Amd-x
    Amd-x's avatar
    Kayıt Tarihi: 29/Eylül/2009
    Erkek
    BarisYigit bunu yazdı

    android kullanıcısı olarak ilk yorumu ben yapayım o zaman.

    döküman != alıntı

     999999999999999999²

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek
    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 :)

    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mycity
    Mycity's avatar
    Banlanmış Üye
    Kayıt Tarihi: 01/Şubat/2011
    Erkek
    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


    Bazıları sadece konuşur bazıları ise hayalleri ile dünya'ya yön verir.. Mycity
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek
    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..

    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mycity
    Mycity's avatar
    Banlanmış Üye
    Kayıt Tarihi: 01/Şubat/2011
    Erkek
    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 :)


    Bazıları sadece konuşur bazıları ise hayalleri ile dünya'ya yön verir.. Mycity
Toplam Hit: 2819 Toplam Mesaj: 11