我正在尝试编写一个应用程序,它会将标记放在当前位置,我找到了这个教程http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/
我写这个小代码片段来检查线程
Thread t = new Thread(){
public void run(){
while(!running) {
if(gpstracker.canGetLocation()) {
double lon = gpstracker.getLongitude();
double lat = gpstracker.getLatitude();
now = new LatLng(lat,lon);
runOnUiThread(new Runnable() {
@Override
public void run() {
change(now);
}
});
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
else {
gpstracker.showSettingsAlert();
}
}
}
};
但是位置永远不会被更改,它始终0.0, 0.0
位置api变化很大,因此来自链接的代码不起作用或者我可能以错误的方式调用它?
答案 0 :(得分:2)
抱歉,但我不懂英文。希望我能帮到你。
public double getLatitude(){
if(location != null){
latitude = location.getLatitude();
}
// return latitude
return latitude;
}
public double getLongitude(){
if(location != null){
longitude = location.getLongitude();
}
// return longitude
return longitude;
}
lat = 0.0且lon = 0.0可以是location is null-> location是lastknowLocation - >如果之前从未打开过gpshas,则lastknowLocation可以为null。因此,如果您使用模拟器测试代码,则可以在模拟器控件中设置位置以使其工作。如果您使用设备测试代码,则只需打开gps并打开地图,然后再次打开app test。
阿。我们有更新的api位置,您可以在此处阅读:https://developer.android.com/training/location/index.html