{"id":1178,"date":"2014-04-09T18:01:40","date_gmt":"2014-04-09T15:01:40","guid":{"rendered":"http:\/\/www.gncz.net\/?p=1178"},"modified":"2014-04-09T21:10:06","modified_gmt":"2014-04-09T18:10:06","slug":"android-gps-konum-servisleri","status":"publish","type":"post","link":"https:\/\/gncz.net\/index.php\/android-gps-konum-servisleri.html","title":{"rendered":"Android- GPS Konum Servisleri"},"content":{"rendered":"<p>Merhaba Arkada\u015flar,<br \/>\nBu yaz\u0131mda Sizlere \u00a0Android uygulama i\u00e7erisinde Google Maps \u00fczerinde \u00e7al\u0131\u015fan bir uygulama i\u00e7erisinden kullan\u0131c\u0131n\u0131n bulundu\u011fu noktaya Marker eklerken ya\u015fad\u0131\u011f\u0131m\u0131z en b\u00fcy\u00fck sorunu anlataca\u011f\u0131m : KULLANICININ KONUM SERV\u0130SLER\u0130 KAPALI VE MARKER EKVATOR&#8217;A EKLEN\u0130YOR!<\/p>\n<p>Resimdeki uygulamada Konum butonuna bas\u0131ld\u0131\u011f\u0131nda kullan\u0131c\u0131n\u0131n bulundu\u011fu konuma MARKER ekleyerek, zoom yap\u0131yor. Faat Kullan\u0131c\u0131n\u0131n konum izinleri kapal\u0131ysa 0,0 noktas\u0131na yani ekvator&#8217;a Marker ekleyerek yanl\u0131\u015f bilgilendirme yap\u0131yor.<\/p>\n<p><a href=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170445.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1179\" alt=\"device-2014-04-09-170445\" src=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170445.png\" width=\"540\" height=\"960\" srcset=\"https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170445.png 540w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170445-168x300.png 168w\" sizes=\"(max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<p>Oysa ki; bizim yaz\u0131l\u0131mc\u0131 olarak istedi\u011fimiz g\u00f6r\u00fcnt\u00fc: Konum \u0130zinleri&#8217;nin a\u00e7\u0131k olup-olmad\u0131\u011f\u0131n\u0131 kontrol edecek bir yap\u0131. G\u00f6rselle anlatacak olursak:<\/p>\n<p><a style=\"line-height: 1.5em;\" href=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170902.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1181\" alt=\"device-2014-04-09-170902\" src=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170902.png\" width=\"540\" height=\"960\" srcset=\"https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170902.png 540w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170902-168x300.png 168w\" sizes=\"(max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170918.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1180\" alt=\"device-2014-04-09-170918\" src=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170918.png\" width=\"540\" height=\"960\" srcset=\"https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170918.png 540w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/device-2014-04-09-170918-168x300.png 168w\" sizes=\"(max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<p>\u0130\u015fte bu yap\u0131y\u0131 sa\u011flamak \u0130\u00e7in Yapacaklar\u0131m\u0131z:<\/p>\n<p>\u00d6ncelikle Konum butonunu layout&#8217;ta ekledikten sonra class&#8217;\u0131m\u0131za gelip, tan\u0131mlama ve atama i\u015flemlerini yap\u0131yoruz:<\/p>\n<p>Button btnKonumum=(Button)findViewById(R.id.button4);<\/p>\n<p><strong><span style=\"color: #ff6600;\">Butonu tan\u0131mlad\u0131ktan sonra OnClick Listener olu\u015ftururken hata alan arkada\u015flar tan\u0131mlamay\u0131 final olarak yapabilirler.<\/span><\/strong><\/p>\n<p><strong><span style=\"color: #ff6600;\">final Button btnKonumum=(Button)findViewById(R.id.button4);<\/span><\/strong><\/p>\n<p><a href=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1182\" alt=\"Ads\u0131z\" src=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z.png\" width=\"823\" height=\"287\" srcset=\"https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z.png 823w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z-300x104.png 300w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z-600x209.png 600w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z-157x55.png 157w\" sizes=\"(max-width: 823px) 100vw, 823px\" \/><\/a><\/p>\n<p>Daha sonra tan\u0131mlad\u0131\u011f\u0131m\u0131z btnKonumum butonuna, Onclick Listener atamas\u0131 yap\u0131yoruz.<\/p>\n<p>btnKonumum.setOnClickListener(new View.OnClickListener() {<\/p>\n<p>@Override<\/p>\n<p>\/\/Override, daha \u00f6nceden yaz\u0131lm\u0131\u015f bir fonksiyonun yap\u0131s\u0131n\u0131 de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r, burada kullanmam\u0131z\u0131n bir anlam\u0131 yok ama \/\/yine de kals\u0131n.<\/p>\n<p>public void onClick(View v) {<\/p>\n<p>\/\/buraya onClick olay\u0131nda \u00e7al\u0131\u015facak kodlar\u0131m\u0131z\u0131 yazaca\u011f\u0131z<br \/>\n}<br \/>\n});<\/p>\n<p><a href=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z2.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1183\" alt=\"Ads\u0131z2\" src=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z2.png\" width=\"700\" height=\"203\" srcset=\"https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z2.png 700w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z2-300x87.png 300w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z2-600x174.png 600w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z2-189x55.png 189w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u015eimdi de Onclick Fonksiyonumuzun i\u00e7erisini doldural\u0131m:<\/p>\n<p>\u00d6ncelikle LocationManager s\u0131n\u0131f\u0131ndan Location Servislerinin \u00f6zelliklerini ta\u015f\u0131yan bir nesne olu\u015fturuyoruz.<\/p>\n<p>LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);<\/p>\n<p>Ve bu olu\u015fturdu\u011fumuz nesne \u00fczerinden IF-ELSE yap\u0131s\u0131 ile kontrol\u00fcm\u00fcz\u00fc ger\u00e7ekle\u015ftiriyoruz:<\/p>\n<p>if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){<br \/>\n\/\/GPS Provider Yerine NETWORK PROVIDER kulland\u0131k, androidin son cihazlar\u0131 network \u00fczerinden de iyi bir alt yap\u0131 sunuyor.<\/p>\n<p>\/\/ Konum Bilgisi A\u00e7\u0131k \u0130se Marker&#8217;\u0131 bu sat\u0131rlarda ekliyoruz.<\/p>\n<p>mMap.addMarker(new MarkerOptions().position(new LatLng(BackgroundService.lastLattitude,BackgroundService.lastLongitude)).title(&#8220;\u015euanki Konumunuz&#8221;).icon(BitmapDescriptorFactory.fromResource(R.drawable.toothicon)));<br \/>\nLatLng coordinateKonumum = new LatLng(BackgroundService.lastLattitude,BackgroundService.lastLongitude);<br \/>\nmMap.moveCamera(CameraUpdateFactory.newLatLng(coordinateKonumum));<br \/>\nmMap.animateCamera(CameraUpdateFactory.zoomTo((float) 15.00),3000, null);<\/p>\n<p>}<\/p>\n<p>else{<br \/>\nshowGPSDisabledAlertToUser();<br \/>\n\/\/Konum Bilgisi Kapal\u0131 \u0130se \u00c7a\u011f\u0131r\u0131lacak Fonksiyon.<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>Yukar\u0131daki fonksiyonun ekran g\u00f6r\u00fcnt\u00fcs\u00fc:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z3.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1184\" alt=\"Ads\u0131z3\" src=\"http:\/\/www.gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z3.png\" width=\"1271\" height=\"413\" srcset=\"https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z3.png 1271w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z3-300x97.png 300w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z3-1024x332.png 1024w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z3-600x194.png 600w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z3-169x55.png 169w, https:\/\/gncz.net\/wp-content\/uploads\/2014\/04\/Ads\u0131z3-900x292.png 900w\" sizes=\"(max-width: 1271px) 100vw, 1271px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>En son olarak da showGPSDisabledAlertToUser fonksiyonumuzu yazal\u0131m ve art\u0131k bitsin bu yaz\u0131:<\/p>\n<p>private void showGPSDisabledAlertToUser(){<br \/>\nAlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);<br \/>\nalertDialogBuilder.setMessage(&#8220;Konumunuzu Belirlemek \u0130\u00e7in Konum Ayarlar\u0131n\u0131z\u0131 Etkinle\u015ftirmeniz Gerekiyor. Konum Ayarlar\u0131n\u0131z\u0131 Etkinle\u015ftirmek \u0130stiyor Musunuz? &#8220;)<br \/>\n.setCancelable(false)<br \/>\n.setPositiveButton(&#8220;Evet&#8221;,<br \/>\nnew DialogInterface.OnClickListener(){<br \/>\npublic void onClick(DialogInterface dialog, int id){<br \/>\nIntent callGPSSettingIntent = new Intent(<br \/>\nandroid.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);<br \/>\nstartActivity(callGPSSettingIntent);<br \/>\n}<br \/>\n});<br \/>\nalertDialogBuilder.setNegativeButton(&#8220;Hay\u0131r&#8221;,<br \/>\nnew DialogInterface.OnClickListener(){<br \/>\npublic void onClick(DialogInterface dialog, int id){<br \/>\ndialog.cancel();<br \/>\n}<br \/>\n});<br \/>\nAlertDialog alert = alertDialogBuilder.create();<br \/>\nalert.show();<br \/>\n}<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Merhaba Arkada\u015flar, Bu yaz\u0131mda Sizlere \u00a0Android uygulama i\u00e7erisinde Google Maps \u00fczerinde \u00e7al\u0131\u015fan bir uygulama i\u00e7erisinden kullan\u0131c\u0131n\u0131n bulundu\u011fu noktaya Marker eklerken ya\u015fad\u0131\u011f\u0131m\u0131z en b\u00fcy\u00fck sorunu anlataca\u011f\u0131m : KULLANICININ KONUM SERV\u0130SLER\u0130 KAPALI VE MARKER EKVATOR&#8217;A EKLEN\u0130YOR! Resimdeki uygulamada Konum butonuna bas\u0131ld\u0131\u011f\u0131nda kullan\u0131c\u0131n\u0131n bulundu\u011fu konuma MARKER ekleyerek, zoom yap\u0131yor. Faat Kullan\u0131c\u0131n\u0131n konum izinleri kapal\u0131ysa 0,0 noktas\u0131na yani ekvator&#8217;a Marker ekleyerek yanl\u0131\u015f bilgilendirme yap\u0131yor.<a class=\"more-link\" href=\"https:\/\/gncz.net\/index.php\/android-gps-konum-servisleri.html\">[Devam\u0131n\u0131 Oku&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":1181,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[92,91],"tags":[254,253,252,255,257,256],"_links":{"self":[{"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/posts\/1178"}],"collection":[{"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/comments?post=1178"}],"version-history":[{"count":1,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/posts\/1178\/revisions"}],"predecessor-version":[{"id":1185,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/posts\/1178\/revisions\/1185"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/media\/1181"}],"wp:attachment":[{"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/media?parent=1178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/categories?post=1178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/tags?post=1178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}