protected void showCurrentLocation(){
Location lc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(lc != null){
String msg = String.format("Current Location \n Logitude: %1$s \n Latitude: %2$s",lc.getLongitude(),lc.getLatitude());
Toast.makeText(Test1.this,msg,3000).show();
}
Toast.makeText(Test1.this,"location is null",3000).show();
}
从上面的代码中,当我在Android手机上运行时,它可以运行,但它只显示位置为null。 我不知道为什么它无法从getLastKnownLocation()
获取位置http://www.javacodegeeks.com/2010/09/android-location-based-services.html
这是我必须尝试的源代码。请帮我。谢谢你:))
聚苯乙烯。我已经有ACCESS_FINE_LOCATION,ACCESS_MOCK_LOCATION和ACCESS_COARSE_LOCATION
答案 0 :(得分:1)
您的应用程序是否具有使用GPS的权限?
http://developer.android.com/reference/android/Manifest.permission.html
P.S: 这里(http://stackoverflow.com/questions/1608632/android-locationmanager-getlastknownlocation-returns-null)建议如下 - 使用LocationListener
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
//TODO:enter your code here
}
}
您也可以使用LocationOverlay:
final MyLocationOverlay overlay = new MyLocationOverlay(this, mapView);
overlay.enableMyLocation();
overlay.runOnFirstFix(new Runnable() {
public void run() {
//TODO: update some model, etc
}
});
答案 1 :(得分:0)
Daisy,我认为你正在努力的是getLastKnownLocation()的概念。在模拟器中,您手动发送模拟位置,并且在运行代码时确实存在最后一个已知位置。在您的实际手机上,可能没有最后一个已知的位置,但是......
你可能在想“但我的手机总是不知道它的位置”,答案可能并非总是如此。
如上所述,您确实需要编写代码来侦听位置管理器的位置更新