Network provider not providing android location

I am developing a small Android application in which I want to find out the current location of a user using a network provider. I tried it as follows, but it did not give me a way out:

networklocationManager = (LocationManager) this .getSystemService(Context.LOCATION_SERVICE); // Define a listener that responds to location updates LocationListener networklocationListener = new LocationListener() { public void onLocationChanged(Location location) { Log.i("********************************", "this is my network location " + location); String Location_text = "NETWORK LOCATION latitude:" + location.getLatitude() + " longitude:" + location.getLatitude(); network_location.setText(Location_text); } public void onStatusChanged(String provider, int status, Bundle extras) {} public void onProviderEnabled(String provider) {} public void onProviderDisabled(String provider) {} }; // Register the listener with the Location Manager to receive location // updates networklocationManager .requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, networklocationListener); 

I gave permissions in my manifest file like this

  <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

Is there something I don't see? Is it correct? Help is needed. Thank...




 public class MainActivity extends Activity implements LocationListener { private TextView latituteField; private TextView longitudeField; private LocationManager gpslocationManager; private LocationManager networklocationManager; private LocationManager networklocationManager1; private String provider; private TextView gps_location; private TextView network_location; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gps_location = (TextView) findViewById(R.id.gps_location); network_location = (TextView) findViewById(R.id.network_location); networkLocation(); } public void networkLocation() { networklocationManager = (LocationManager) this .getSystemService(Context.LOCATION_SERVICE); LocationListener networklocationListener = new LocationListener() { public void onLocationChanged(Location location) { Log.i("********************************", "this is my network location " + location); String Location_text = "NETWORK LOCATION latitude:" + location.getLatitude() + " longitude:" + location.getLatitude(); network_location.setText(Location_text); } public void onStatusChanged(String provider, int status, Bundle extras) {} public void onProviderEnabled(String provider) {} public void onProviderDisabled(String provider) {} }; networklocationManager .requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, networklocationListener); } } 
+1
android geolocation
Apr 15 '13 at 11:06 on
source share
3 answers

Make sure you turn on geolocation services in the settings! This should be a problem. It can be disabled (and this parameter can usually be found in the "Location and Security Settings" section).

Let me know if this works!

+1
Apr 15 '13 at 11:23
source share

Is your network provider enabled?

 boolean network_enabled; try { network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); } catch(Exception ex) { ex.printStackTrace(); } 
+1
Jul 13 '13 at 19:17
source share

I hope this piece of code helps you extract from vogella .

 public class ShowLocationActivity extends Activity implements LocationListener { private TextView latituteField; private TextView longitudeField; private LocationManager locationManager; private String provider; @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) {} @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(); } } 
0
Apr 15 '13 at 11:25
source share



All Articles