Membuat Aplikasi Android Coding Maps Detail

coding maps detail
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

Sebelum anda memulai membuat project, apa bila anda baru memulai membuat aplikasi android dan belum menginstal software yang diperlukan harap di instal terlebih dahulu.


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 "

 
-->