android - 无法获取当前设备位置

标签 android latitude-longitude locationmanager

我正在尝试获取 Android 手机的当前位置并在 toast 中显示经度和纬度。这是我写的一个函数。在调试代码时,我发现控件永远不会进入 onLocationChanged 函数。

从下面的android文档看来,当我调用“locationMgr.requestLocationUpdates”时,它应该调用回调函数onLocationChanged。但这在我的代码中似乎没有发生。 http://developer.android.com/training/basics/location/currentlocation.html

我检查了我的手机是否已打开 GPS。我无法弄清楚以下代码中有什么问题。请帮忙。

  public void getCurrentLocation(){
            LocationManager locationMgr;
    locationMgr = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

    LocationListener listener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {
           // A new location update is received.  Do something useful with it  

                    String latitude = "latitude: " + location.getLatitude();
                    String longitude = "longitude: " + location.getLongitude();
                    String toastString = "location is" + latitude + "," +longitude;
                    Toast.makeText( getApplicationContext(),toastString,Toast.LENGTH_SHORT).show();

            }
        @Override  
          public void onProviderDisabled(String provider) {  
           // No code here  
          }  

          @Override  
          public void onProviderEnabled(String provider) {  
           // No code here  
          }  

          @Override  
          public void onStatusChanged(String provider, int status,Bundle extras)   
          {  
           // No code here  
          }  
    };

    locationMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER,0, 0, listener);
}

我的 list 文件中还有以下两行。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

感谢您的帮助。

我正在使用 Eclipse,我的手机(操作系统:Thuderbolt)的 API 级别为 15,目标为 4.0.4。

最佳答案

您无法获取位置的原因有多种。

1.) 如果您尝试获取模拟器上的位置。然后你必须使用 DDMS 手动推送坐标。

2.) 如果您在设备上检查,但仍然无法获取位置。然后正如您所说,您期待 GPS 提供。那么你应该有晴朗的天空 View 才能看到这一点。由于 GPS 接收器在屋顶或某些障碍物下无法工作。他们必须拥有天空景观。

3.) 您可以使用 wi-fi 或手机信号塔获取位置。如果位置准确性不太重要,您也可以选择“最后已知位置”。

我认为第二点可能会解决您的问题。

关于android - 无法获取当前设备位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16311852/

相关文章:

android - 让向上按钮的行为与android后退按钮相同

Android:通过 body Intent 发送短信并返回。

postgresql - 纬度和经度的数据类型是什么?

android - 如何使用 LocationManager 在 android 中获取当前位置

android - 固定 GPS 时获取坐标 - Android

android - 正确设置闹钟

android - 适配器中的 AdView 构造函数问题

ios - 获取带有经纬度的城市和国家名称(iOS)

google-maps - 经纬度国名

android - android GPS位置错误过多