0

所以我现在已经用我自己的手持设备,今天我试图让谷歌地图,将在当前用户的位置在我的应用程序一直在开发这个应用程序的几个星期Android的位置和谷歌设置

map.setMyLocationEnabled(true); //Locate the current position of the user 

上面的setLocationEnabled(true)通常应该显示用户在地图上的位置,当按下GPS按钮时,它将放大它。然而,在我添加下面的代码后,这不再起作用,它不再显示用户的位置,我也注意到“Google设置”已安装到我的设备上,在四处看后是Google的更新,因此它可能不会成为代码本身。但我不知道Google设置是否是这个原因。

LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE); 
    Criteria criteria = new Criteria(); 
    String provider = service.getBestProvider(criteria, false); 
    Location location = service.getLastKnownLocation(provider); 
    LatLng userLocation = new LatLng(location.getLatitude(),location.getLongitude()); 
    map.moveCamera(CameraUpdateFactory.newLatLngZoom(userLocation, 15)); 

即使在注释掉的代码块的问题仍然存在。我不知道如何解决这个问题,我希望有人能帮助我。我不确定这是否与代码本身或只是我的设备有关,即使它在过去几周工作并且不会给出任何错误或警告,它实际上并不会获得用户的位置即使在我的地图上按下GPS按钮也不会给出任何错误或警告。

编辑:我试着用这个应用程序的代码的老工作版本,它仍然无法获得用户位置来在地图上。

谢谢。

回答

0

为什么你不使用:

map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(map.getMyLocation().getLatitude(),map.getMyLocation().getLongitude()), 15));

地图商店的实际位置,所以你不需要LocationManager类。

+0

嗨我试过你的代码,但我只是得到一个运行时异常:无法启动活动。 – user1832478 2013-02-27 13:27:37

+0

你应该检查你是否有位置:'if(mMap.getMyLocation()!= null)' – 2013-02-27 13:32:09

+0

直到地图获得位置,这将需要一点时间。 – 2013-02-27 13:35:55