Dalam Aplikasi Android Coding Maps kali ini berbeda dengan sebelumnya
yang hanya mendapatkan nilai kordinat dari GPS.Provider pada aplikasi
ini kita akan mendapatkan alamat/nama daerah dari lokasi yang di kirim
oleh GPS.Provider ke aplikasi kita. Tentunya untuk aplikasi ini
memerlukan koneksi internet sehingga kita juga membutuhkan permission
internet pada AndroidManifest kita.
A. Buatlah Sebuah Project Android Baru
Pertama buatalah sebuah project android baru dengan property :
Project name : codingmaps2
Build target : Google Api's 8
Aplication name : codingmaps2
Package name : com.wilis.codingmaps2
Activity : codingmaps2
Min SDK : 8
1. AndroidManifest.xml
Ubahlah isi file AndroidManifest.xml dalam direktori root menjadi seperti ini :<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.wilis.codingmaps2" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <uses-library android:name="com.google.android.maps"/> <activity android:name=".codingmaps2" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.INTERNET"/> </manifest>
Dalam AndroidManifest.xml ini kita memerlukan library
com.google.android.aps kaena kita akan menggunakan librari itu untuk
mendapatkan alamat dari suatu nilai location, sehingga kita menambahkan
ini pada script di atas :
<uses-library android:name="cim.google.android.maps"/>
Kemudian kita juga kita menambahkan script berikut pada AndroidManifest
kita di atas untuk permission akses internet dan lokasi :
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
2. Main.xml
Ubahlah isi file main.xml dalam direktori res/layout menjadi seperti ini :<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <textview android:id="@+id/myLocationText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
3. codingmaps2.java
Ubahlah isi file codingmaps2.java dalam direktroi src/com.wilis.codingmaps2 mejadi seperti ini :package com.wilis.codingmaps2; import android.app.Activity; import android.content.Context; import android.os.Bundle; import java.io.IOException; import java.util.List; import java.util.Locale; import android.location.Address; import android.location.Criteria; import android.location.Geocoder; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.widget.TextView; public class codingmaps2 extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); LocationManager locationManager; String context = Context.LOCATION_SERVICE; locationManager = (LocationManager)getSystemService(context); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria.POWER_LOW); String provider = locationManager.getBestProvider(criteria, true); Location location = locationManager.getLastKnownLocation(provider); updateWithNewLocation(location); locationManager.requestLocationUpdates(provider, 2000, 10, locationListener); } private final LocationListener locationListener = new LocationListener(){ public void onLocationChanged(Location location) { updateWithNewLocation(location); } public void onProviderDisabled(String provider){ updateWithNewLocation(null); } public void onProviderEnabled(String provider){} public void onStatusChanged(String provider, int status, Bundle extras){} }; private void updateWithNewLocation(Location location) { String latLongString; TextView myLocationText; myLocationText = (TextView)findViewById(R.id.myLocationText); String addressString = "Tidak Ditemukan"; if(location != null){ double lat = location.getLatitude(); double lng = location.getLongitude(); latLongString = "Lat : "+lat+"\n Long : "+lng; double latitude = location.getLatitude(); double longitude = location.getLongitude(); Geocoder gc = new Geocoder(this, Locale.getDefault()); try{ List<address> addresses = gc.getFromLocation(latitude, longitude, 1); StringBuilder sb = new StringBuilder(); if(addresses.size() > 0){ Address address = addresses.get(0); for(int i = 0; i < address.getMaxAddressLineIndex(); i++) sb.append(address.getAddressLine(i)).append("\n"); sb.append(address.getLocality()).append("\n"); sb.append(address.getPostalCode()).append("\n"); sb.append(address.getCountryName()).append("\n"); sb.append(address.getCountryCode()); } addressString = sb.toString(); }catch(IOException e){} }else{ latLongString = "Lokasi Tidak Ditemukan"; } myLocationText.setText("Lokasi Anda Sekarang Adalah : \n"+latLongString+"\n"+addressString); } }
Sekarang coba anda jalankan aplikasi anda dengan cara
klik Run As > Android Aplication.kemudian kirimkan nilai dari Location Control di DDMS. anda dapat menemukannya dengan cara klik
Window > Open Prespective > Other > DDMS. kemudian klik Send.
Notes :
*Apabila lokasi alamat anda tidak ditemukan dan hanya tampil kordinat
GPS saja coba anda export aplikasi anda ke dalam instaler aplikasi
android .Apk kemudian instal di dalam smartphone android anda jika
script anda benar lokasi anda akan terlihat,
Sumber : Pemograman Aplikasi Mobile Smartphone dan tablet PC Berbasic Android Penerbit Informatika, Bandung, 2012 By : Nazruddin Safaat.
0 Komentar untuk "Membuat Aplikasi Android Coding Maps Detail "