我遇到了我在 React Native 中无法理解的问题。
我正在制作一个使用
react-native-geolocation-service
和 @supersami/rn-foreground-service
库的应用程序。
我正在尝试通过
Geolocation.watchPosition
使用这些设置在前台接收用户位置:
{
accuracy: {
android: 'high',
ios: 'best',
},
enableHighAccuracy: true,
distanceFilter,
interval: 5000,
fastestInterval: 2000,
forceLocationManager: true,
showLocationDialog: true,
showsBackgroundLocationIndicator: true,
}
当我在后台使用假 gps 应用程序(android 案例)测试应用程序时,一切都很好,我的检查点(我正在与当前用户位置进行比较的纬度和经度点)已被收集,前台通知正在更新。
但情况是当我想摆脱模拟并进行真实测试时。 我在设置中给了
Always use location
并且我正在使用以下权限:
ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
ACCESS_BACKGROUND_LOCATION
现在我无法到达任何检查站,也没有我在通知中显示的不断变化的地理位置。
我在地理位置侦听器中使用
useRef
的值,没关系,当有导航或假gps运行时一切正常,所以我认为收集和更新前台通知的逻辑是正确的。
它似乎只有在其他东西使用本地化时才有效......
Case 仅适用于 Android,我使用的是 Android 12.
有人能解释一下我错过了什么吗?
提前谢谢你们!
编辑:我在循环中使用
getLocation
而不是watchLocation
.