我对获取最新用户坐标感到困惑,因为Google最近或多或少更新了其API,我只能找到关于此主题的旧问题的旧答案,而且这些都不适用于我。
研究官方API文档我编写了这样一个函数:
if ( ContextCompat.checkSelfPermission( (Activity) MainActivity.this, ACCESS_COARSE_LOCATION ) == PackageManager.PERMISSION_GRANTED ||
Build.VERSION.SDK_INT > 23 )
{
FusedLocationProviderClient mFusedLocationClient = LocationServices.getFusedLocationProviderClient( ( Activity ) MainActivity.this );
mFusedLocationClient.getLastLocation().addOnSuccessListener( ( Activity) MainActivity.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 )
{
lastLocation = location.getLatitude() + ", " + location.getLongitude();
}
}
}
);
}
我在运行Android 4.0的模拟器上测试 - 无论如何 - 权限部分完全适合Android 6.0,但仍然无法获得最新的坐标。 我在Asynctask进程中运行我的函数,它应该返回数据 - 没有成功。
任何帮助请弄清楚发生了什么?