Diese Frage bezieht sich direkt auf die gleiche vorherrschende stackoverflow Frage bei "Android: get current location of user without using gps or internet", wo die angenommene Antwort tatsächlich die Frage nicht beantwortet.Holen Sie sich den aktuellen Standortnamen des Benutzers ohne Verwendung von GPS oder Internet, aber mithilfe von Network_Provider in Android
Ich sollte in der Lage sein, den aktuellen Standortnamen (zB: Name der Stadt, Dorfname) des Geräts über Netzwerkanbieter nicht mit GPS oder Internet zu erhalten. Folgendes ist die akzeptierte Antwort in dieser Frage. (Die folgenden Code-Teile sollten in der onCreate()
Verfahren einbezogen werden)
// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// Called when a new location is found by the network location provider.
makeUseOfNewLocation(location);
}
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
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
ich den obigen Code in der verknüpften Antwort wie folgt festgelegt geändert, aber ohne Erfolg.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView txtView = (TextView) findViewById(R.id.tv1);
txtView.setText("ayyo samitha");
////
// Acquire a reference to the system Location Manager
LocationManager locationManager;
locationManager= (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// Called when a new location is found by the network location provider.
makeUseOfNewLocation(location);
}
private void makeUseOfNewLocation(Location location) {
txtView.setText("sam came in");
txtView.append(location.toString());
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {
// makeUseOfNewLocation(location);
}
public void onProviderDisabled(String provider) {}
};
// Register the listener with the Location Manager to receive location updates
if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}
}
Wie kann ich erreichen, was ich will, indem ich obigen Code oder eine andere Methode korrigiere? Beachten Sie, dass ich den Standortnamen erhalten möchte, nicht aber die Längen- und Breitengrade. Kann mir bitte jemand helfen?
Ich bin nicht ganz klar von dem, was Sie fragen, können Sie genau beschreiben, was Sie zu erreichen versuchen, welche Art von Verhalten Sie versuchen, die erwartete Zeit zwischen Standort Updates, etc. – Kai
Ich möchte nur aktuell zu bekommen Standort des Benutzers ohne Verwendung von GPS oder Internet. –
@Kai Sind Sie klar, was das Problem ist? Ich habe am Ende auch eine kleine Bearbeitung in der Frage gemacht. –