Blogger Tips and TricksLatest Tips And TricksBlogger Tricks

Develop a native application that uses GPS location information.

1)Open eclipse or android studio and select new android project
2)Give project name and select next
3) Choose the android version.Choose the lowest android version(Android 2.2) and select next
4) Enter the package name.package name must be two word seprated by comma and click finish
5)Go to package explorer in the left hand side.select our project.
6)Go to res folder and select layout.Double click the main.xml file.Add the code below
<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/relativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
<Button
    android:id="@+id/show_Location"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Show_Location"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    />
</RelativeLayout>
7) Now select mainactivity.java file and type the following code.In my coding maniactivity name is GPSlocationActivity.

package gps.location;

//import android.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class GPSlocationActivity extends Activity {
    /** Called when the activity is first created. */
    Button btnShowLocation;
    GPStrace gps;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btnShowLocation=(Button)findViewById(R.id.show_Location);
        btnShowLocation.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                gps=new GPStrace(GPSlocationActivity.this);
                if(gps.canGetLocation()){
                    double latitude=gps.getLatitude();
                    double longitude=gps.getLongtiude();
                    Toast.makeText(getApplicationContext(),"Your Location is \nLat:"+latitude+"\nLong:"+longitude, Toast.LENGTH_LONG).show();
                }
                else
                {
                    gps.showSettingAlert();
                            }
             
              
            }
        });
    }
}
8)Go to src folder and Right Click on your package folder and choose new class and give the class nams as GPStrace
9)Select the GPStrace.java file and paste the following code.

package gps.location;
import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;

public class GPStrace extends Service implements LocationListener{
private final Context context;
boolean isGPSEnabled=false;
boolean canGetLocation=false;
boolean isNetworkEnabled=false;
Location location;
double latitude;
double longtitude;
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES=10;
private static final long MIN_TIME_BW_UPDATES=1000*60*1;
protected LocationManager locationManager;
public GPStrace(Context context)
{
    this.context=context;
    getLocation();
}
public Location getLocation()
{
    try{
        locationManager=(LocationManager) context.getSystemService(LOCATION_SERVICE);
        isGPSEnabled=locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);        isNetworkEnabled=locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        if(!isGPSEnabled && !isNetworkEnabled){
         
        }else{
            this.canGetLocation=true;
            if(isNetworkEnabled){              
                locationManager.requestLocationUpdates(
                    LocationManager.NETWORK_PROVIDER,
                    MIN_TIME_BW_UPDATES,
                    MIN_DISTANCE_CHANGE_FOR_UPDATES,this);                  
                }
                if(locationManager!=null){                    location=locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                    if(location !=null){
                        latitude=location.getLatitude();
                        longtitude=location.getLongitude();                      
                    }
                }
            }
            if(isGPSEnabled){
                if(location==null){                    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    if(locationManager!=null){
                        location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                    if(location!=null){
                        latitude=location.getLatitude();
                        longtitude=location.getLongitude();
                    }
                    }
                }
            }
        } 
    catch(Exception e)
    {
        e.printStackTrace();
    }
    return location;
}
public void stopUsingGPS(){
    if(locationManager!=null){
        locationManager.removeUpdates(GPStrace.this);
    }
}
public double getLatitude(){
    if(location!=null){
        latitude=location.getLatitude();
    }
    return latitude;
}
public double getLongtiude(){
    if(location!=null){
        longtitude=location.getLatitude();
    }
    return longtitude;
}
public boolean canGetLocation(){
    return this.canGetLocation;
}
public void showSettingAlert(){
    AlertDialog.Builder alertDialog=new AlertDialog.Builder(context);
    alertDialog.setTitle("GPS is settings");
    alertDialog.setMessage("GPS is not enabled.Do you want to go to setting menu?");
    alertDialog.setPositiveButton("settings", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog,int which){
            Intent intent=new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            context.startActivity(intent);
        }
    });
    alertDialog.setNegativeButton("cancel", new DialogInterface.OnClickListener() {              
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            dialog.cancel();
        }
    });
    alertDialog.show();
    }
@Override
public void onLocationChanged(Location location) {
    // TODO Auto-generated method stub
  
}
@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  
}
@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}                     
}
11)Now go to main.xml and right click .select run as option and select run configuration
12) Android output is present in the android emulator as shown in below.

5 comments:

  1. i couldn't copy to this program in lab exp

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. What is gpstrace ? Please reply

    ReplyDelete
  4. It says cannot find symbol gpstrace in java file...please explain

    ReplyDelete
  5. Choosing a web design company can be a overwhelming task for many small business owners. I've seen many clients give up on the whole process after interviewing with several web design companies. Fortunately there are some easy tricks and tips that can help you easily make the right choice for you. Let's take a look at a few of the myths surrounding this topic that make this decision so difficult. SEO Content Writing Services

    ReplyDelete

Flag Counter