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

What is the simplest and the best way to get the user's current location on Android?

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

我正在开发的应用程序并不是真正的每秒位置应用程序,但它确实需要。它不需要担心用户是否四处走动或类似的事情。

我已经找到了很多答案,但它们太旧了,我想知道你得到它的最好和最新的方法

要获取最新位置,请在您的 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
            }
        }
    });

这通过为您提供最新的已知位置来实现

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

使用这个你可以得到当前位置的纬度和经度,然后传递这个值来得到地图。

public class MyLocationListener 实现 LocationListener

{

@Override

public void onLocationChanged(Location loc)

{

loc.getLatitude();

loc.getLongitude();

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

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

“经度=” + loc.getLongitude();

Toast.makeText(getApplicationContext(),

正文,

Toast.LENGTH_SHORT).show();

}

@Override

public void onProviderDisabled(String provider)

{

Toast.makeText(getApplicationContext(),

“GPS 已禁用”,

Toast.LENGTH_SHORT).show();

}

@Override

public void onProviderEnabled(String provider)

{

Toast.makeText(getApplicationContext(),

“已启用 Gps”,

Toast.LENGTH_SHORT).show();

}

@Override

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

{

}

}

}