我真的很想知道获取用户当前位置的最佳和最简便的方法。
我正在使用的应用实际上并不是每秒定位应用,但确实需要。无需担心用户在四处走动还是类似的事情。
我已经找到了很多答案,但是它们太旧了,我想知道获得它的最佳和最新方式
答案 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(字符串提供程序,整数状态,附加捆绑包)
{
}
}
}