user2128534
user2128534

Reputation:

Android location on emulator

I'm trying this code for android location, but when I run the emulator it says "unfortunately location has stopped"... any idea? This the code for MainAcivity (I followed this tutorial http://www.vogella.com/articles/AndroidLocationAPI/article.html#locationapi_gpsenable)

    public class MainActivity extends Activity implements LocationListener {
      private TextView latituteField;
      private TextView longitudeField;
      private LocationManager locationManager;
      private String provider;

/** Called when the activity is first created. */

      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        latituteField = (TextView) findViewById(R.id.TextView02);
        longitudeField = (TextView) findViewById(R.id.TextView04);

// Get the location manager
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// Define the criteria how to select the locatioin provider -> use
// default
        Criteria criteria = new Criteria();
        provider = locationManager.getBestProvider(criteria, false);
        Location location = locationManager.getLastKnownLocation(provider);

// Initialize the location fields
        if (location != null) {
          System.out.println("Provider " + provider + " has been selected.");
          onLocationChanged(location);
        } else {
          latituteField.setText("Location not available");
          longitudeField.setText("Location not available");
        }
      }

/* Request updates at startup */
      @Override
      protected void onResume() {
        super.onResume();
        locationManager.requestLocationUpdates(provider, 400, 1, this);
      }

/* Remove the locationlistener updates when Activity is paused */
      @Override
      protected void onPause() {
        super.onPause();
        locationManager.removeUpdates(this);
      }

      @Override
      public void onLocationChanged(Location location) {
        int lat = (int) (location.getLatitude());
        int lng = (int) (location.getLongitude());
        latituteField.setText(String.valueOf(lat));
        longitudeField.setText(String.valueOf(lng));
      }

      @Override
      public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

      }

      @Override
      public void onProviderEnabled(String provider) {
        Toast.makeText(this, "Enabled new provider " + provider,
            Toast.LENGTH_SHORT).show();

      }

      @Override
      public void onProviderDisabled(String provider) {
        Toast.makeText(this, "Disabled provider " + provider,
            Toast.LENGTH_SHORT).show();
      }
    }   

Upvotes: 0

Views: 1355

Answers (3)

Davit Avetisyan
Davit Avetisyan

Reputation: 129

You can use Genymotion emulator, there is very easy to set location on virtual device.

Upvotes: 1

stinepike
stinepike

Reputation: 54672

you have to enter the location of your emulator manually. There are several options

Option 1: using DDMS

  • go to your android/tools directory, and launch the DDMS tool

  • select the Emulator Control Tab

  • fill the Location Controls fields with the longitude and latitude values

  • press the Send button

Option 2: using telnet

  • open a command shell
  • conect to the emulator with the command: telnet localhost
  • to enter a fixed location execute the command:

geo fix < longitude> < latitude> [< altitude>]

Option 3: using 3rd party app

You can try android-gps-emulator app to set the location. There might be other apps like this

Source

Upvotes: 2

Umesh Lakhani
Umesh Lakhani

Reputation: 2412

Try this code i may be help to you..

http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

Also Setting the geoposition You can use the "DDMS" Perspective of Eclipse to send your geoposition to the emulator or a connected device. For open this Perspective select Window → Open Perspective → Other... → DDMS.

In the Emulator Control part you can enter the geocoordinates and press the Send button.

enter image description here

Upvotes: 1

Related Questions