获取用户在 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)
{
}
}
}
我真的很想知道获取用户当前位置的最好和最简单的方法。
我正在开发的应用程序并不是真正的每秒位置应用程序,但它确实需要。它不需要担心用户是否四处走动或类似的事情。
我已经找到了很多答案,但它们太旧了,我想知道你得到它的最好和最新的方法
要获取最新位置,请在您的 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)
{
}
}
}