Я хочу получать информацию о погоде с помощью API погоды Google, когда у меня есть координаты долготы и широты. Поэтому я беру коды:
private void updateWeather(){
new Thread(){
public void run() {
//get Weather start:
LocationHelper helper = new LocationHelper(MomentsActivity.this);
Location location = helper.getLocation();
if(null != location){
String request = "http://www.google.com/ig/api?weather=,,,"+location.getLatitude()
+","+location.getLongitude();
XmlParserUtil parser = new XmlParserUtil(mHandler);
try {
parser.parse(HttpUtil.getWeather(request));
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//end
};
}.start();
}
Но когда я хотел бы получить долготу и широту от LocationManager, я обнаружил, что местоположение все время было нулевым.
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
public class LocationHelper {
Context context;
public LocationHelper(){}
public LocationHelper(Context context){
this.context = context;
}
public Location getLocation(){
LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Location location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(null == location){
location = manager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
return location;
}
}
Пожалуйста, помогите мне найти ошибку. Спасибо.
В дополнении:
Я добавил некоторые разрешения:
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" ></uses-permission>
Все таки я включил GPS и вайфай, но местоположение тоже было нулевое.