【发布时间】:2015-10-26 12:49:28
【问题描述】:
我正在尝试运行一个应用程序,该应用程序可以在屏幕上显示的地图片段上更新设备中的位置并将其居中。 地图上的蓝点显示在正确的位置,锁定了gps位置,但是好像从来没有调用过onLocationChanged函数。
编辑:现在事情变得更加奇怪了。我让应用程序运行了一段时间(大约 10 分钟),它确实随机更新了几次位置。它突然又停了下来。至少我知道这些功能是正确的。但是现在我应该去哪里看?
下面是相关代码。
public class MapaActivity extends FragmentActivity implements LocationListener{
public static GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
setUpMapIfNeeded();
mMap.setMyLocationEnabled(true);
}
public boolean setUpMapIfNeeded() {
if (mMap == null) {
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
if (mMap == null) {
setUpMap();
}
}
return true;
}
private void setUpMap() {
mMap.setMyLocationEnabled(true);
LocationManager locationManager;
locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);
locationManager.requestLocationUpdates(provider, 1000, 0 , this);
}
@Override
public void onLocationChanged(Location location) {
//do some stuff
}
【问题讨论】:
-
setUpMapIfNeeded的返回类型必须为 void。 -
我实际上使用从设置地图功能返回的信息来检查它是否已经设置,然后再对地图框进行一些其他分配
-
但你没有这样做。
-
它在一个省略的函数上。
-
现在事情变得更奇怪了。它确实随机更新了几次它的位置。它突然又停了下来。至少我知道这些功能是正确的。但是现在我应该去哪里看?
标签: android maps locationlistener