初始化 LocationCallback 后打开设备 GPS 时,未调用 LocationCallback onLocationResult

Posted

技术标签:

【中文标题】初始化 LocationCallback 后打开设备 GPS 时,未调用 LocationCallback onLocationResult【英文标题】:LocationCallback onLocationResult isn't getting called when device GPS is turned on after initializing LocationCallback 【发布时间】:2020-10-11 12:21:26 【问题描述】:

我有一个前台服务,它在应用程序启动时被初始化,即使应用程序被销毁也会运行。我已经在前台服务中初始化了 LocationCallback,如下所示:

new LocationCallback() 
        @Override
        public void onLocationResult(LocationResult locationResult) 
            super.onLocationResult(locationResult);

            // My custom code
        

        @Override
        public void onLocationAvailability(LocationAvailability locationAvailability) 
            super.onLocationAvailability(locationAvailability);
        

我有两个案例:

a) 在设备 GPS 开启后初始化服务(连同 LocationCallback)时,一切正常。也就是说,控制在给定持续时间后进入“onLocationResult”。

b) 但是,在设备 GPS 开启之前初始化服务(连同 LocationCallback)时,控件永远不会进入“onLocationResult”。即使前台服务正在运行并且设备上的 GPS 已打开(在 LocationCallback 初始化之后)。

有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

此问题仅在模拟器上出现(不确定原因是什么)。如果我尝试在设备上进行调试(使用 USB 调试),则一切正常。

【讨论】:

以上是关于初始化 LocationCallback 后打开设备 GPS 时,未调用 LocationCallback onLocationResult的主要内容,如果未能解决你的问题,请参考以下文章

无法解析符号 getFusedLocationProviderClient 和 LocationCallback

使用 fusedLocationProvider.removeLocationUpdates (locationCallback) Android Studio 时出错

LocationListener LocationCallback 有啥区别?

何时使用 LocationManager/LocationListener VS。 LocationServices/LocationCallback 跟踪用户位置?

com.google.android.gms.location.LocationCallback 是接口还是类?

FusedLocation 不会触发 android api <= 21 的 locationcallback