BIL4106 - MOBiL PROGRAMLAMA TEKNiKLERi Yard. Doç. Dr. Oğuzhan Topsakal oguzhantopsakal@uludag.edu.tr 14.05.2015
Bu Derste App içinde harita ve konum kullanımı App içinden Google Maps aktivitesi açmak Konum bilgisi almak 2
Intent ile Google Map Intent lerle bir app icinden baska bir appnin aktivitelerini cagirabiliriz. “Google Maps app for Android” harita yada yol tarifi göstermek için aöık intentler barındırır. Bir noktanın haritasını istediğimiz yaklaşma ayarına göre görebiliriz. Yerler aranıp, harita içinde görülebilir. Bir noktadan diğerine tarif istenebilir. Google Street Viewde panaromik resimler görülebilir 3
Intent ile Google Map - Örnekler Street View // Create a Uri from an intent string. Use the result to create an Intent. String uriString = “google.streetview:cbll=“ + latString + “,” + longString; Uri gmmIntentUri = Uri.parse(uriString); // Create an Intent from gmmIntentUri. Set the action to ACTION_VIEW Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); // Make the Intent explicit by setting the Google Maps package mapIntent.setPackage("com.google.android.apps.maps"); // Attempt to start an activity that can handle the Intent startActivity(mapIntent); 4
Intent ile Google Map - Örnekler Harita Gösterimi geo:latitude,longitude?z=zoom latitude ve longitude da belirtilen koordinatlara odaklanır z yaklaşma miktarını belirtir, opsiyonel Örnek: // Creates an Intent that will load a map of San Francisco String geoString = “geo:” + latString + “,” + longString; Uri gmmIntentUri = Uri.parse(geoString); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent); 5
Intent ile Google Map - Örnekler Haritada Arama geo:latitude,longitude?q=query latitude ve longitude da belirtilen koordinatlara odaklanır z yaklaşma miktarını belirtir Örnek: // Creates an Intent that will load a map of San Francisco Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent); 6
Intent ile Google Map - Örnekler Haritada Eczane Arama geo:latitude,longitude?q=query // Create a Uri from an intent string. Use the result to create an Intent. Uri gmmIntentUri = Uri.parse("geo:40.09,29.01?q=Eczane"); // Create an Intent from gmmIntentUri. Set the action to ACTION_VIEW Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); // Make the Intent explicit by setting the Google Maps package mapIntent.setPackage("com.google.android.apps.maps"); if (mapIntent.resolveActivity(getPackageManager()) != null) { // Attempt to start an activity that can handle the Intent startActivity(mapIntent); } 7
Intent ile Google Map - Örnekler Haritada Yol Tarifi google.navigation:q=a+street+address google.navigation:q=latitude,longitude q: nereye gidileceği, koordinat yada adres olabilir mode: d (arabayla), w (yürüyerek) yada b (bisikletle) Örnek: Uri gmmIntentUri = Uri.parse(“google.navigation:q=Uludag+Universitesi,+Bursa+Turkiye&mode=d"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent); 8
Intent ile Google Map - Detaylar Detaylar için dokumanları inceleyin ve sunulan örnek appyi inceleyin https://developers.google.com/maps/documentation/androi d/intents Örnek appyi ders siteden indirebilirsiniz. 9
Konum Bilgisine Erişim - İzinler Kullanicinin verdigi izinler Ayarlar bolumunden Konum (Location) izin verin App kodunda istenen izinler AndroidManifest.xml dosyası içinde ACCESS_COARSE_LOCATION ve ACCESS_FINE_LOCATION izinleri verilir. <uses-permission android:name=“android.permission.ACCESS_COARSE_LOCATION”/> <uses-permission android:name=“android.permission. ACCESS_FINE_LOCATION"/> 10
Google Play Services Eklemek Tools —> Android —> SDK Manager 11
Konum Bilgisine Erişim - Google Play API kurulur Google Play Services kurulur.. (bir önceki slayt) build.gradle dosyası içine eklenir: dependencies { compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.google.android.gms:play-services:7.3.0' } “Sync Project with Gradle Files” menu seçeneğine tıklayın Hata verirse, install seçeneğini seçip eksik olan library nin indirilip yüklenmesine izin verin. Nasıl kurulacağının detayları: https://developer.android.com/google/play- services/setup.html 12
Örnek Kod 13 Google konu anlatimi: https://developer.android.com/training/location/index.html Son konumu bulma Konum guncellemelerini edinme Konum adresini bulma Geo çit (geofencing) Google Ornekleri: https://github.com/googlesamples/android-play-location Bu projeleri ‘import’ edin: BasicLocation LocationAddress LocationUpdates 13
Haftaya Okuma Ödevi Android Appde map kullanımı: https://gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/android-301/androidde-haritalar- servisi http://yesilcin.com/android-programlama-konum-bulma-ve-map-islemleri-t11007.0.html http://melihmucuk.com/android-programlama-konum-bulma-ve-map-islemleri/ ingilizce: https://developer.android.com/guide/topics/location/index.html http://mobiforge.com/design-development/developing-with-google-maps-v2-android http://www.vogella.com/tutorials/AndroidGoogleMaps/article.html http://code.tutsplus.com/tutorials/android-sdk-working-with-google-maps-application-setup-- mobile-15771 14
Kaynaklar Android API: http://developer.android.com/reference/packages.html Udacity - Developing Android Apps (Google tarafından) https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821/m- 1643858569 15
Sorularınız? 16