Что возвращает метод telephonyManager.getCellLocation()
Я использую telephonyManager.getCellLocation()
и я получаю результат, который [-1,-1,0], но я не могу понять из вывода. Это какой-то тип кода местоположения, потому что я не думаю, что это своего рода лат-ланг любой позиции. заранее спасибо за любую помощь
1 ответ
Вы можете найти местоположение, используя LocationManager.NETWORK_PROVIDER вместо LocationManager.GPS_PROVIDER.NETWORK_PROVIDER будет разрешать по GSM или Wi-Fi, которые когда-либо доступны. Очевидно, что при выключенном Wi-Fi будет использоваться GSM. Имейте в виду, что использование сотовой сети с точностью до 500м.
http://developer.android.com/guide/topics/location/obtaining-user-location.html содержит действительно полезную информацию и примеры кода.
После того, как вы закончите с большей частью кода в 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);
Вы также можете сделать так, чтобы ваша деятельность реализовала класс LocationListener и, таким образом, реализовала onLocationChanged() в вашей активности. или вы можете использовать этот учебник, чтобы получить лат и ланг.