To pytanie jest bezpośrednio związane z tym samym przeważającym pytaniem o stackoverflow w "Android: get current location of user without using gps or internet", gdzie zaakceptowana odpowiedź w rzeczywistości nie odpowiada na pytanie.Uzyskaj nazwę bieżącej lokalizacji użytkownika bez użycia GPS lub Internetu, ale używając Network_Provider w Androidzie
Powinienem być w stanie uzyskać aktualną nazwę lokalizacji (np. Nazwę miasta, nazwę wioski) urządzenia za pośrednictwem operatora sieci, a nie z GPS lub Internetu. Oto akceptowana odpowiedź w tym pytaniu. (Następujące części Kodeksu powinny być uwzględnione w metodzie onCreate()
)
// 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);
Zmieniłem powyższy kod podany w połączonej odpowiedzi w następujący sposób, ale bez powodzenia.
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);
}
}
Jak osiągnąć to, co chcę, poprawiając powyższy kod lub jakąkolwiek inną metodę? Zwróć uwagę, że chcę uzyskać nazwę lokalizacji, ale nie długość i szerokość geograficzną. Czy ktoś mógłby mi pomóc.
Nie jestem całkowicie wolny od tego, o co prosisz, możesz opisać dokładnie to, co próbujesz osiągnąć, jaki rodzaj zachowania próbujesz uzyskać, przewidywany czas między aktualizacjami lokalizacji, itp. – Kai
Chcę tylko uzyskać bieżące lokalizacja użytkownika bez korzystania z GPS lub Internetu. –
@Kai Czy wiesz, co to jest problem? Zrobiłem też małą zmianę w pytaniu na końcu. –