Android FusedLocationProviderClient getLastLocation 总是第一次返回 null

Posted

技术标签:

【中文标题】Android FusedLocationProviderClient getLastLocation 总是第一次返回 null【英文标题】:Android FusedLocationProviderClient getLastLocation always returning null for the first time 【发布时间】:2018-12-24 11:55:09 【问题描述】:

我需要当前位置,所以我使用了 FusedLocationProviderClient getLastLocation()。但它总是第一次为空。我该如何处理?这是代码

    private FusedLocationProviderClient mFusedLocationClient;
        mFusedLocationClient = LocationServices.getFusedLocationProviderClient(getApplicationContext());
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) 
            mFusedLocationClient.getLastLocation().addOnSuccessListener(location -> 
                if (location != null) 
                    String latitude = String.valueOf(location.getLatitude());
                    String longitude = String.valueOf(location.getLongitude());
                    sendAddress(addressId,mTicketId,latitude,longitude,mCurrentTime);
                
            );
        

【问题讨论】:

【参考方案1】:

但第一次总是为空。

这种情况并不少见,特别是如果设备上没有其他东西恰好在积极尝试确定位置。

请记住,您可能永远无法获取位置:用户可能禁用了位置服务,或者用户可能处于设备无法获取位置修复的环境中。

我该如何处理?

处理您可能无法获得位置的可能性。

【讨论】:

以上是关于Android FusedLocationProviderClient getLastLocation 总是第一次返回 null的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

android 21 是啥版本

Android逆向-Android基础逆向(2-2)

【Android笔记】android Toast

图解Android - Android核心机制

Android游戏开发大全的目录