【发布时间】:2016-06-18 16:48:32
【问题描述】:
即使设备没有移动,我也想获取设备的当前纬度和经度。
尝试了requestLocationUpdates() 和requestSingleUpdate(),但我的位置仍然为空。 LocationManager.onLocationChanged() 似乎只有在位置发生变化时才会被调用。我想发布此位置详细信息,但每次都以NullPointerException 失败。
这是我的代码示例:
活动:
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, myLocationListener);
if (location == null) {
try {
locationManager.requestSingleUpdate(LocationManager.GPS_PROVIDER, myLocationListener, Looper.myLooper());
} catch (SecurityException e) {
}
}
//MyLocationListener
public void onLocationChanged(Location location) {
activity.setLocation(location);
}
}
}
清单:
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
【问题讨论】:
-
换个手机试试
-
您在室内使用设备吗? GPS 需要很长时间才能在室内定位。
-
是的,我在室内使用
-
@basilisk 有没有办法始终如一地获取位置。如果需要一些时间而不是我通过一些“TimerTask”或某种方式来确保它,那很好
标签: android android-gps