在Android上获取用户当前位置的最简单,最佳方法是什么?

时间:2019-08-06 10:49:53

标签: android location

我真的很想知道获取用户当前位置的最佳和最简便的方法。

我正在使用的应用实际上并不是每秒定位应用,但确实需要。无需担心用户在四处走动还是类似的事情。

我已经找到了很多答案,但是它们太旧了,我想知道获得它的最佳和最新方式

2 个答案:

答案 0 :(得分:1)

要获取最新位置,请在您的oncreate视图中致电

 fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);

然后使用以下代码获取位置

fusedLocationClient.getLastLocation()
    .addOnSuccessListener(this, new OnSuccessListener<Location>() {
        @Override
        public void onSuccess(Location location) {
            // Got last known location. In some rare situations this can be null.
            if (location != null) {
                // Logic to handle location object
            }
        }
    });

这可以为您提供最新的已知位置

答案 1 :(得分:0)

如果GPS可用并且可以获取当前位置,

使用此方法,您可以获取当前位置的纬度和经度,然后传递值以获取地图。

公共类MyLocationListener实现了LocationListener

{

@Override

onLocationChanged(Location loc)上的公共无效

{

loc.getLatitude();

loc.getLongitude();

String Text =“我当前的位置是:” +

“纬度=” + loc.getLatitude()+

“ Longitud =” + loc.getLongitude();

Toast.makeText(getApplicationContext(),

文字

Toast.LENGTH_SHORT).show();

}

@Override

public void onProviderDisabled(字符串提供程序)

{

Toast.makeText(getApplicationContext(),

“禁用GPS”,

Toast.LENGTH_SHORT).show();

}

@Override

public void onProviderEnabled(字符串提供程序)

{

Toast.makeText(getApplicationContext(),

“已启用Gps”,

Toast.LENGTH_SHORT).show();

}

@Override

public void onStatusChanged(字符串提供程序,整数状态,附加捆绑包)

{

}

}

}