問題的標題幾乎總結了我想問的問題。所以我有了使用LocationManager.NETWORK_PROVIDER
獲得當前城市名稱的代碼,它的作用就像一個魅力。然而,一個問題突然出現:「如果電話無法使用LocationManager.NETWORK_PROVIDER
獲得城市名稱,會發生什麼?」。當然,我發現該電話:由於某些原因,聯想手機不能使用LocationManager.NETWORK_PROVIDER
獲得座標。所以我的問題我怎樣才能讓我的應用程序第一次使用LocationManager.NETWORK_PROVIDER
查找座標以獲取城市的名稱,如果結果爲空以獲取使用LocationManager.GPS_PROVIDER
的座標?Andorid如何使用座標獲取當前城市的名稱
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_where_am_i);
if (android.os.Build.VERSION.SDK_INT > 9)
{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
}
,我得到這個城市的名稱爲:
public void onLocationChanged(Location location)
{
curLatitude = location.getLatitude();
curLongitude = location.getLongitude();
try{
//Get the name of the city the user is currently in base on the current latitude and Longitude
Geocoder gcd = new Geocoder(this, Locale.UK);
List<Address> addresses = gcd.getFromLocation(curLatitude, curLongitude,1);
if (addresses.size() > 0)
{
StringBuilder cityName = new StringBuilder();
cityName.append(addresses.get(0).getLocality());
CityName = cityName.toString();
//Check if the user is in allowed cities
}
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
訪問http://upadhyayjiteshandroid.blogspot.in/2013/02/convert-celllocation-to-real-location.html和HTTP ://upadhyayjiteshandroid.blogspot.in/2013/02/android-get-location-without-gps-using.html可能會幫助你 –
[此鏈接](http://hejp.co.uk/android/android-gps例如)可能對你有幫助。嘗試'GPSTracker'獲取'lat'和'lng'而不是地理位置管理器 –
,但我想要的是在GPS和網絡提供商 – user3182266