Note that there are some explanatory texts on larger screens.

plurals
  1. POGPS Android program stopping unexpectedly
    primarykey
    data
    text
    <p>I am new to Android and running into a difficulty with a basic GPS information display program. The program is stopping unexpectedly. I would appreciate any suggestions or comments you may have.</p> <p>I am coding for Android 2.3.3 in Eclipse with Android Development Tools.</p> <p>What I see as relevant sections of code are given below, but, for your convenience, the project is archived here:</p> <p><a href="http://www.filedropper.com/showdownload.php/2013-06-05t1434gps1" rel="nofollow">http://www.filedropper.com/showdownload.php/2013-06-05t1434gps1</a></p> <p>The sections of code follow:</p> <p>Main.java:</p> <pre><code>package com.example.gps_1; import android.app.Activity; import android.content.Intent; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.location.LocationProvider; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import android.widget.Toast; public class Main extends Activity implements LocationListener { /* This class implements LocationListener, which listens for both changes in * the location of the device and changes in the status * of the GPS system. * */ static final String tag = "Main"; // for Log TextView txtInfo; LocationManager lm; StringBuilder sb; int noOfFixes = 0; /** called when the activity is first created */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* Have TextView display the GPS data. * */ txtInfo = (TextView) findViewById(R.id.textInfo); /* The location manager is allows access to location and GPS status * services. * */ lm = (LocationManager) getSystemService(LOCATION_SERVICE); } @Override protected void onResume() { /* onResume is called after onStart even if the program has not been paused. * * Add location listener and request updates every 1000 ms or 10 m. */ lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10f, this); super.onResume(); } @Override protected void onPause() { /* GPS has non-negligible battery consumption.*/ lm.removeUpdates(this); super.onPause(); } @Override public void onLocationChanged(Location location) { Log.v(tag, "location changed"); sb = new StringBuilder(512); noOfFixes++; /* Display some of the information in the TextView. */ sb.append("number of fixes: "); sb.append(noOfFixes); sb.append('\n'); sb.append('\n'); sb.append("longitude: "); sb.append(location.getLongitude()); sb.append('\n'); sb.append("latitude: "); sb.append(location.getLatitude()); sb.append('\n'); sb.append("altitiude: "); sb.append(location.getAltitude()); sb.append('\n'); sb.append("accuracy: "); sb.append(location.getAccuracy()); sb.append('\n'); sb.append("timestamp: "); sb.append(location.getTime()); sb.append('\n'); txtInfo.setText(sb.toString()); } @Override public void onProviderDisabled(String provider) { /* this is called if/when the GPS is disabled in settings */ Log.v(tag, "disabled"); /* bring up the GPS settings */ Intent intent = new Intent( android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(intent); } @Override public void onProviderEnabled(String provider) { Log.v(tag, "enabled"); Toast.makeText(this, "GPS enabled", Toast.LENGTH_SHORT).show(); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { /* This is called when the GPS status alters */ switch (status) { case LocationProvider.OUT_OF_SERVICE: Log.v(tag, "status changed: out of service"); Toast.makeText(this, "status changed: out of service", Toast.LENGTH_SHORT).show(); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: Log.v(tag, "status changed: temporarily unavailable"); Toast.makeText(this, "status changed: temporarily unavailable", Toast.LENGTH_SHORT).show(); break; case LocationProvider.AVAILABLE: Log.v(tag, "status changed: available"); Toast.makeText(this, "status changed: available", Toast.LENGTH_SHORT).show(); break; } } @Override protected void onStop() { /* upgrade: save the state */ finish(); super.onStop(); } } </code></pre> <p>main.xml:</p> <pre><code>&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".Main" &gt; &lt;TextView android:id="@+id/textInfo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /&gt; &lt;/RelativeLayout&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload