In this article, we will create an Android application which displays 
latitude and longitude of the current location using GPS and Android’s 
LocationManager API.
An extension to this application is available in the article titled “Showing current location in Google Maps with GPS and LocationManager in Android“, where current location is displayed in Google Map.
This application is developed in Eclipse ( 4.2.0 ) with ADT plugin ( 20.0.3 ) and Android SDK ( R20.0.3 )
Delete Android’s backward compatibility support library from the project, if exists
By default Eclipse ( 4.2.0) adds Android Support Library to Android application project. For this application, we don’t need to use this support library. So the library file libs/android-support-v4.jar may be removed manually via ProjectExplorer by simply right click on the file and then clicking the menu item “delete”.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Set Longitude and Latitude of the location in Eclipse -> DDMS ( Perspective ) to run this application in the emulator
Screenshot of the application
Download Source Code
 
Reference
http://developer.android.com/guide/index.html
An extension to this application is available in the article titled “Showing current location in Google Maps with GPS and LocationManager in Android“, where current location is displayed in Google Map.
This application is developed in Eclipse ( 4.2.0 ) with ADT plugin ( 20.0.3 ) and Android SDK ( R20.0.3 )
Delete Android’s backward compatibility support library from the project, if exists
By default Eclipse ( 4.2.0) adds Android Support Library to Android application project. For this application, we don’t need to use this support library. So the library file libs/android-support-v4.jar may be removed manually via ProjectExplorer by simply right click on the file and then clicking the menu item “delete”.
<resources>    <string name="app_name">LocationFromGPS</string>    <string name="hello_world">Hello world!</string>    <string name="menu_settings">Settings</string>    <string name="title_activity_main">Location From GPS</string>    <string name="str_tv_location">Current Location</string></resources> Update the file res/layout/activity_main.xml     android:layout_width="match_parent"    android:layout_height="match_parent" >    <TextView        android:id="@+id/tv_location"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:text="@string/str_tv_location"        android:textStyle="bold" />    <TextView        android:id="@+id/tv_longitude"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/tv_location"        android:layout_centerHorizontal="true" />    <TextView        android:id="@+id/tv_latitude"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/tv_longitude"        android:layout_centerHorizontal="true"/></RelativeLayout> Update the file res/values/styles.xml <resources>    <style name="AppTheme" parent="android:Theme" /></resources> Update the file res/values-v11/styles.xml <resources>    <style name="AppTheme" parent="android:Theme.Holo" /></resources>  Update the file res/values-v14/styles.xml <resources>    <style name="AppTheme" parent="android:Theme.Holo" /></resources> Update the class MainActivity in the file src/in/wptrafficanalyzer/locationfromgps/MainActivitiy.java package in.wptrafficanalyzer.locationfromgps;import android.app.Activity;import android.content.Context;import android.location.Criteria;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.view.Menu;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements LocationListener{    LocationManager locationManager ;    String provider;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // Getting LocationManager object        locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);        // Creating an empty criteria object        Criteria criteria = new Criteria();        // Getting the name of the provider that meets the criteria        provider = locationManager.getBestProvider(criteria, false);        if(provider!=null && !provider.equals("")){            // Get the location from the given provider            Location location = locationManager.getLastKnownLocation(provider);            locationManager.requestLocationUpdates(provider, 20000, 1, this);            if(location!=null)                onLocationChanged(location);            else                Toast.makeText(getBaseContext(), "Location can't be retrieved", Toast.LENGTH_SHORT).show();        }else{            Toast.makeText(getBaseContext(), "No Provider Found", Toast.LENGTH_SHORT).show();        }    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }    @Override    public void onLocationChanged(Location location) {        // Getting reference to TextView tv_longitude        TextView tvLongitude = (TextView)findViewById(R.id.tv_longitude);        // Getting reference to TextView tv_latitude        TextView tvLatitude = (TextView)findViewById(R.id.tv_latitude);        // Setting Current Longitude        tvLongitude.setText("Longitude:" + location.getLongitude());        // Setting Current Latitude        tvLatitude.setText("Latitude:" + location.getLatitude() );    }    @Override    public void onProviderDisabled(String provider) {        // TODO Auto-generated method stub    }    @Override    public void onProviderEnabled(String provider) {        // TODO Auto-generated method stub    }    @Override    public void onStatusChanged(String provider, int status, Bundle extras) {        // TODO Auto-generated method stub    }} Update the file AndroidManifest.xml     package="in.wptrafficanalyzer.locationfromgps"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="4"        android:targetSdkVersion="15" />    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />    <uses-permission android:name="android.permission.INTERNET" />    <application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name=".MainActivity"            android:label="@string/title_activity_main" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest> Enable GPS in the emulator or device from Settings
 
Set Longitude and Latitude of the location in Eclipse -> DDMS ( Perspective ) to run this application in the emulator
Screenshot of the application
Download Source Code
Reference
http://developer.android.com/guide/index.html
             
No comments:
Post a Comment