【问题标题】:Get user location Android获取用户位置 Android
【发布时间】:2012-08-19 12:13:06
【问题描述】:

我正在尝试根据网络提供商获取用户位置,但该事件从未发生,UpdateLocation() 方法从未被调用。 代码如下:

public void UpdateLocation(Location location)
{
    GeoPoint geoPoint = new GeoPoint((int)(location.getLatitude() * 1E6),(int)(location.getLongitude() * 1E6));
    MapController controller = mapView.getController();
    controller.setCenter(geoPoint);
}
public void GetLocation()
{
     // Acquire a reference to the system Location Manager
    LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

    // Define a listener that responds to location updates
    LocationListener locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {
          // Called when a new location is found by the network location provider.
          UpdateLocation(location);
        }

        public void onStatusChanged(String provider, int status, Bundle extras) {}

        public void onProviderEnabled(String provider) {}

        public void onProviderDisabled(String provider) {}
      };

    // Register the listener with the Location Manager to receive location updates
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}

可能是什么问题?我在这里做错了吗?

【问题讨论】:

  • 你是在设备还是模拟器上使用这个?
  • 您是否在清单中添加了正确的权限?喜欢 INTERNET 和 ACCESS_COARSE_LOCATION?

标签: java android gps locationmanager android-location


【解决方案1】:

如果我没记错的话,NETWORK_PROVIDER 使用 wifi 信号来确定位置。

几件事情要验证:

  • wifi 开启了吗?
  • 设备是否注册了 wifi 信号?超过一个? (一个可能还不够)
  • 设置中的“定位服务”下是否勾选了“使用无线网络”?

【讨论】:

  • 我在模拟器上运行此代码,而不是在设备上,我使用的是笔记本电脑并且 Wifi 已打开。
  • 它不能在模拟器上工作。有一些方法可以欺骗 gps 修复,但不幸的是,我认为我没有看到任何会做 NETWORK_PROVIDER 的事情。不过,也许其他人知道有一个模拟器。
  • 您可以做的一件事是切换到收听 GPS 并进行模拟。它至少应该让您能够测试代码的其他区域,例如“UpdateLocation”。见这里:stackoverflow.com/questions/2279647/…
  • 我明白了,谢谢你的帮助。快速浏览一下,这段代码没有错吗?
  • 哦,等等,它不起作用,因为我是在模拟器上而不是在设备上运行它?
【解决方案2】:

您应该在请求位置之前检查您的位置提供程序是否已启用:

locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

看看这个教程。它包括sample code

【讨论】:

  • 请注意,您应该在此处或此站点上发布有用的答案点,否则您的帖子可能会被删除为"Not an Answer"。如果您愿意,您仍然可以包含该链接,但仅作为“参考”。答案应该是独立的,不需要链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
  • 2018-08-13
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
相关资源
最近更新 更多