关于这个问题,我在SO上发了很多帖子: 试过Here中的所有内容, Here和Here没有任何作用。每次位置都为空。在设备上和模拟器上:(。我的GPS已打开,互联网已开启且我的清单具有以下权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
我使用以下代码来获取位置,即设备的经度和纬度......但是在每种情况下,我都会location
作为null
public void find_Location() {
Log.d("Find Location", "in find_location");
String location_context = Context.LOCATION_SERVICE;
locationManager = (LocationManager) getApplicationContext()
.getSystemService(location_context);
List<String> providers = locationManager.getProviders(true);
for (String provider : providers) {
locationManager.requestLocationUpdates(provider, 1000, 0,
new LocationListener() {
public void onLocationChanged(Location location) {}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider,
int status, Bundle extras) {
}
});
Location location = locationManager.getLastKnownLocation(provider);
if (location == null) {
Toast.makeText(LbsGeocodingActivity.this, "Location Not found",
Toast.LENGTH_LONG).show();
} else {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
Toast.makeText(LbsGeocodingActivity.this,
"LAT..." + latitude + "\nLONG..." + longitude,
Toast.LENGTH_LONG).show();
// addr=ConvertPointToLocation(latitude,longitude);
// String temp_c=SendToUrl(addr);
}
}
}
答案 0 :(得分:1)
确定位置需要一些时间,并且可能会随着时间的推移而改变。当你检查它时,它可能还没有。
当定位可用时,您将收到onLocationChanged的通知。
答案 1 :(得分:1)
我怎么可能这么傻......我很糟糕......在设置中使用无线网络没有被选中!....这导致所有问题! 现在我能够获得一个位置。
我花了16个小时来达到这个目标......我的生产力肯定会下降! :(