Android GPS konumunu öğrenme

+6 oy
19 Mart 2015 androidboy Uzman Yardımcısı (1,830 puan)   sordu
Android de programatik olarak (zamana veya konum değişimine bağlı olarak) gps konumunu nasıl öğrenebilirim? Navigasyon uygulamaları gibi bir sistemi yani. (Google maps api kullanıyorum.)

1 cevap

+1 oy
20 Mart 2015 Tahsin Dalman Uzman (7,000 puan)   cevapladı
20 Mart 2015 androidboy seçti
 
En İyi Cevap

LocationManager sınıfını kullanman gerekiyor. Kendi projemden örnek vereyim incelersen anlarsın yapıyı. 
onLocationChanged olayında konum değiştiğinde ne yapmak istiyorsan onu yazabilirsin. 
konumYoneticisi.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, konumDinleyicisi); kısmında ise dinleme işinin ne şekilde yapılacağını belirtmen gerekiyor.

 LocationManager konumYoneticisi;
 LocationListener konumDinleyicisi;

konumYoneticisi = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
            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();
                }
                
                @Override
                public void onProviderDisabled(String provider) { 
                     Toast.makeText( getApplicationContext(),gpsKapatildi,Toast.LENGTH_SHORT).show();
                }
                
                @Override
                public void onLocationChanged(Location loc) {
                    loc.getLatitude();
                    loc.getLongitude();
                    if(point!=null){

                         txtView.setText(point.toString());
                        if(loc.getLatitude()>point.latitude-0.0004&&loc.getLatitude()<point.latitude+0.0004&&loc.getLongitude()>point.longitude-0.0004&&loc.getLongitude()<point.longitude+0.0004&&loc.getAccuracy()<15){
                            ses.start();
                            uyariver();
                        }
                    }
                    
                    if(cont==0){
                    map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
                    map.moveCamera(CameraUpdateFactory.newLatLngZoom(
                            new LatLng(loc.getLatitude(), loc.getLongitude()), 16));}
                    
                    map.setMyLocationEnabled(true);
                    cont=1;
                }
            };     
            
            konumYoneticisi.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, konumDinleyicisi);

...