我正在 flutter 中构建一个食品配送应用程序,其中包含卖家端、用户端和司机端。 该应用程序包含实时跟踪功能,需要后台位置权限。但这会导致应用程序被拒绝。 android 14 需要前台服务位置权限才能工作后台位置。
这是我的manifest.xml,其中提到了所有与位置相关的权限。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
现在我怎样才能让应用程序获得批准?我正在使用 Location 包。
Future<void> _listenLocation() async {
model.location.enableBackgroundMode(enable: true);
locationStream = model.location.onLocationChanged.listen((event) async {
logger.w("Is it Working.....");
await FirebaseFirestore.instance
.collection('location')
.doc(widget.orderId.toString())
.set({
'latitude': event.latitude,
'longitude': event.longitude,
'dishOrderId': widget.orderId.toString()
}, SetOptions(merge: true));
});
}
当应用程序处于后台且打开谷歌地图时,需要此功能来持续更新驾驶员位置。但问题是位置权限始终有效。请告诉我修复方法。
我尝试关注 YouTube 视频来进行实时跟踪,但这需要后台位置。我没有找到任何方法可以使实时跟踪仅在颤振中与前台位置一起工作。任何帮助将不胜感激。
后台位置权限就是他们所说的“敏感权限”,因为当应用程序不在应用程序的前台时,人们可能不知道您的应用程序可以跟踪他们的位置。
因此,当您的应用程序首次被检测到使用该权限时,Google 希望解释您的应用程序为何需要该权限,以及如何让用户意识到您可以使用该权限。
他们想要您的应用程序的视频,显示如何使用后台位置等。
这是一个很好的解释:
https://support.google.com/googleplay/android-developer/answer/9799150?hl=en