背景位置跟踪以计算他们旅行的距离和路线图
Background Location Tracking to Calculate the Distance and Route Map They Traveled
我正在 Xamarin.Android 平台上实现一个 android 应用程序,该应用程序用于跟踪他走过的距离和路线。通过为 android OS.
的低版本和高版本使用后台定位服务和前台定位服务
我在更高版本的 Android 设备(高于 8.0 OS 版本)中遇到问题,当用户关闭应用程序时,我的前台服务停止并且无法跟踪距离和路线。它只给我 Arial 路线的起点和终点距离。
请提供不使用 Google 或其他方向 API 的任何其他方法来解决我的问题。
原因:
为了保持电池电量、用户体验和系统健康,后台应用程序在设备上使用时接收位置更新的频率较低 运行 Android 8.0。此行为更改会影响所有接收位置更新的应用,包括 Google Play 服务。
这些更改会影响以下 API:
- 融合位置提供程序 (FLP)
- 地理围栏
- GNSS 测量
- 位置管理器
- Wi-Fi 管理器
解法:
Android 8.0 引入了一种新方法,称为 Context。 StartForegroundService(),在前台启动一个新服务。系统创建服务应用后有五秒调用servicestartForeground
visible()方法来显示新服务用户通知。如果在这个时间限制内没有调用应用程序
StartForeground ()
,则系统将停止本申请ANR服务及声明。
Intent service = new Intent(TheApplication.getInstance().getApplicationContext(), MyBackgroundService.class);
service.putExtra("startType", 1);
if (Build.VERSION.SDK_INT >= 26) {
TheApplication.getInstance().startForegroundService(service);
} else {
TheApplication.getInstance().startService(service);
}
我正在 Xamarin.Android 平台上实现一个 android 应用程序,该应用程序用于跟踪他走过的距离和路线。通过为 android OS.
的低版本和高版本使用后台定位服务和前台定位服务我在更高版本的 Android 设备(高于 8.0 OS 版本)中遇到问题,当用户关闭应用程序时,我的前台服务停止并且无法跟踪距离和路线。它只给我 Arial 路线的起点和终点距离。
请提供不使用 Google 或其他方向 API 的任何其他方法来解决我的问题。
原因:
为了保持电池电量、用户体验和系统健康,后台应用程序在设备上使用时接收位置更新的频率较低 运行 Android 8.0。此行为更改会影响所有接收位置更新的应用,包括 Google Play 服务。
这些更改会影响以下 API:
- 融合位置提供程序 (FLP)
- 地理围栏
- GNSS 测量
- 位置管理器
- Wi-Fi 管理器
解法:
Android 8.0 引入了一种新方法,称为 Context。 StartForegroundService(),在前台启动一个新服务。系统创建服务应用后有五秒调用servicestartForeground
visible()方法来显示新服务用户通知。如果在这个时间限制内没有调用应用程序
StartForeground ()
,则系统将停止本申请ANR服务及声明。
Intent service = new Intent(TheApplication.getInstance().getApplicationContext(), MyBackgroundService.class);
service.putExtra("startType", 1);
if (Build.VERSION.SDK_INT >= 26) {
TheApplication.getInstance().startForegroundService(service);
} else {
TheApplication.getInstance().startService(service);
}