2013-03-22 70 views
0

我試圖獲取用戶當前所在的城市(沒有確切的地址,只有市)得到城市的Android

爲獲得全國,我使用此代碼:

String locale = context.getResources().getConfiguration().locale.getCountry(); 

我想這

Geocoder gcd = new Geocoder(context, Locale.getDefault()); 
List<Address> addresses = gcd.getFromLocation(lat, lng, 1); 
if (addresses.size() > 0) 
    System.out.println(addresses.get(0).getLocality()); 

但它返回給我一個空字符串: 「」

PS:爲獲取城市代碼我alrea DY有ACCESS_FINE_LOCATION和網絡許可清單文件

非常感謝

+0

http://stackoverflow.com/questions/2296377/how-to-get-city-name-from-latitude-and-longitude-values-in-google-map-android – maszter 2013-03-22 22:57:49

+0

我不明白從哪裏做的我需要獲取lat和lng變量,如果我沒有連接到gps? (只有wifi)非常感謝 – 2013-03-22 23:04:10

回答

0

首先所有的方式,你所得到的國家只是給你已在設置中定義的國家。所以這在許多情況下可能是正確的,但對於那些已經在他們的設置中設置了其他國家的用戶而言,他們現在確實不適用。

Geocoder沒有給出任何緯度,經度組合的結果,其中一個原因可能是缺少網絡連接,或者您缺少API使用的基本服務。

您還應該確保Geocoder.isPresent()返回true - 否則它不適用於任何位置。 Geocoder's isPresent() method always returns false

+0

感謝您的回答,\t 也,我不明白從哪裏需要得到拉特和lng變量,如果我沒有連接到gps? (只有wifi)非常感謝 – 2013-03-22 23:06:32

+0

只需使用[LocationManager](http://developer.android.com/reference/android/location/LocationManager.html) - 如果您確定GPS或一個開發人員,您作爲開發人員沒有區別基於網絡的位置。 Android爲你做了所有需要的東西。作爲開發者,您可以強制系統使用GPS。 [Localtion Strategies](http://developer.android.com/guide/topics/location/strategies.html) – fish 2013-03-22 23:23:26

+0

我明白我怎麼能得到我的位置與GPS,但無線網絡,你能給我一個例子嗎?非常感謝 – 2013-03-22 23:35:00