【问题标题】:android location getting null need solutionandroid位置获取null需要解决方案
【发布时间】:2013-08-23 06:43:50
【问题描述】:
String logloc ="";
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location!=null) {
    double longitude = location.getLongitude();
    double latitude = location.getLatitude();
    logloc = String.valueOf(latitude)+","+String.valueOf(longitude);
    notfi(logloc); 
}

在上面的代码中,即使我的 gps 设备在建筑物外和建筑物内,我的位置总是为空,我只得到空值,请帮助我运行此代码

【问题讨论】:

  • 您是否在清单文件中添加了权限?
  • 此权限已添加到标签之后
  • refer here。在处理之前,它会先检查 GPS 或 NETWORKPROVIDER 是否已启用。
  • 请同时添加ACCESS_COARSE_LOCATION权限

标签: android gps location


【解决方案1】:

只是因为您的设备没有最后一个已知位置,这就是原因。首先制作onLocationChanged()的代码。它将获取当前位置并将其保存为lastKnownLocation。然后该方法将起作用。

您可以在此处获取当前位置的帮助

How do I get the current GPS location programmatically in Android?

【讨论】:

  • 感谢您的回复,lm 呢?我们使用 lm.getLastKnownLocation 获取 getLastKnownLocation
  • 您的代码没问题,但是此时您不需要使用 locationlistner 并自动触发 OnLocationChanged 并获取当前的纬度和经度
【解决方案2】:

尝试这样你的Activity必须是这样的

Activity extends MapActivity implements LocationListener

 LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
 Criteria criteria = new Criteria();
 String provider = locationManager.getBestProvider(criteria, false);
 Location location = locationManager.getLastKnownLocation(provider);

    if (location != null) {
        System.out.println("Provider " + provider + " has been selected.");
        lat = (double) (location.getLatitude());
        lng = (double) (location.getLongitude());

        Log.i(TAG, "Lattitude:" + lat);
        Log.i(TAG, "Longitude:" + lng);

    }

【讨论】:

    猜你喜欢
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2015-06-04
    • 1970-01-01
    相关资源
    最近更新 更多