在移动网络上找到我的位置

时间:2013-08-25 21:22:57

标签: android location android-maps-v2

如果手机连接到Wifi或移动网络,我想获取我的位置。但是,如果手机在移动网络上的东西不按预期运行。直到我启用GPS才会发生任何事情。我可以在没有启用GPS的情况下获得位置,或者我必须这样做吗?如果GPS是必须的,我怎么能警告用户启用GPS?

private void setUpMap() {
    // TODO Auto-generated method stub
    mMap.setMyLocationEnabled(true);

    LocationManager manager = (LocationManager)getActivity().getSystemService(FragmentActivity.LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    String provider = manager.getBestProvider(criteria, true);

    myLocation = manager.getLastKnownLocation(provider);

    latitude = myLocation.getLatitude();
    longitude = myLocation.getLongitude();
    LatLng latlng = new LatLng(latitude, longitude);

    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 14));
}

2 个答案:

答案 0 :(得分:1)

请参阅此Demo

您必须创建一个 GPSTracker 服务,该服务会跟踪您的上一个位置。

如果您专注于演示,我认为100%可以解决您的问题。

如果像魅力一样工作,那就接受答案。

答案 1 :(得分:0)

你的问题非常多。

Can i get location without enabling GPS or i have to do that ? 

当然可以。位置来自位置提供商。示例包括网络,Wifi和GPS。你并不需要所有人。只要有人会这样做。

And if GPS is must, how could i warn user to enable GPS ?

您可以使用LocationManager类下的方法isProviderEnabled(字符串提供程序)来检查GPS提供程序是否已启用。如果您可以显示某些消息和链接以启用它。

要了解如何识别您的应用位置,建议您按照官方说明here进行操作。多数民众赞成我也是如何学习它的。