GPS android requestLocationUpdate
android, gps
Solution
The following is my code to test RequestLocationUpdates and LocationManager and LocationListener.
package com.test.locationmanager;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import android.widget.TextView;
public class LocationManagerStatus extends Activity {
private LocationManager locationManager;
private TextView textView;
private final LocationListener gpsLocationListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
case LocationProvider.AVAILABLE:
textView.setText(textView.getText().toString() + "GPS available again\n");
break;
case LocationProvider.OUT_OF_SERVICE:
textView.setText(textView.getText().toString() + "GPS out of service\n");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
textView.setText(textView.getText().toString() + "GPS temporarily unavailable\n");
break;
}
}
@Override
public void onProviderEnabled(String provider) {
textView.setText(textView.getText().toString() + "GPS Provider Enabled\n");
}
@Override
public void onProviderDisabled(String provider) {
textView.setText(textView.getText().toString() + "GPS Provider Disabled\n");
}
@Override
public void onLocationChanged(Location location) {
locationManager.removeUpdates(networkLocationListener);
textView.setText(textView.getText().toString() + "New GPS location: "
+ String.format("%9.6f", location.getLatitude()) + ", "
+ String.format("%9.6f", location.getLongitude()) + "\n");
}
};
private final LocationListener networkLocationListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
case LocationProvider.AVAILABLE:
textView.setText(textView.getText().toString() + "Network location available again\n");
break;
case LocationProvider.OUT_OF_SERVICE:
textView.setText(textView.getText().toString() + "Network location out of service\n");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
textView.setText(textView.getText().toString() + "Network location temporarily unavailable\n");
break;
}
}
@Override
public void onProviderEnabled(String provider) {
textView.setText(textView.getText().toString() + "Network Provider Enabled\n");
}
@Override
public void onProviderDisabled(String provider) {
textView.setText(textView.getText().toString() + "Network Provider Disabled\n");
}
@Override
public void onLocationChanged(Location location) {
textView.setText(textView.getText().toString() + "New network location: "
+ String.format("%9.6f", location.getLatitude()) + ", "
+ String.format("%9.6f", location.getLongitude()) + "\n");
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView) findViewById(R.id.textview);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
}
@Override
protected void onResume() {
super.onResume();
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 0, networkLocationListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 0, gpsLocationListener);
}
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(networkLocationListener);
locationManager.removeUpdates(gpsLocationListener);
}
}
Problem
I have a class named `GPSSampleLocation` There is a function to turn on gps and based on that getting location here gpsEnabled will be true but in my phone when I request for gps the GPS icon on above in my PHONE will be blinking ... but it is not blinking also... and I am not getting data ``` public void getGPSLocation() { LocationManager mlocManager = (LocationManager) GPSSampleLocation.this .getSystemService(Context.LOCATION_SERVICE); boolean gpsEnabled = mlocManager .isProviderEnabled(LocationManager.GPS_PROVIDER); if (!gpsEnabled) { String provider = Settings.Secure.getString( getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); if (!provider.contains("gps")) { // if gps is disabled final Intent poke = new Intent(); poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); poke.addCategory(Intent.CATEGORY_ALTERNATIVE); poke.setData(Uri.parse("3")); sendBroadcast(poke); } } gpsEnabled = mlocManager .isProviderEnabled(LocationManager.GPS_PROVIDER); System.out.println("GPS ENALBLE" + gpsEnabled); if (gpsEnabled) { mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, GPSSampleLocation.this); } } ``` I have also used these permissions : ``` <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.INTERNET"/> ```