获取用户位置 Android

Posted

技术标签:

【中文标题】获取用户位置 Android【英文标题】:Get user location 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? 【参考方案1】:

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

几件事情要验证:

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

【讨论】:

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

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

locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

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

【讨论】:

请注意,您应该在此处或此站点上发布有用的答案点,否则您的帖子可能会被删除为"Not an Answer"。如果您愿意,您仍然可以包含该链接,但仅作为“参考”。答案应该是独立的,不需要链接。

以上是关于获取用户位置 Android的主要内容,如果未能解决你的问题,请参考以下文章

AndroidAndroid安全机制

AndroidAndroid如何对APK反编译

AndroidAndroid属性allowBackup安全风险

AndroidAndroid下SQLite3数据库的操作

Androidandroid常用工具类。

AndroidAndroid六种布局详解