【问题标题】:Continuous android location background from Android OS 8 or higher来自 Android OS 8 或更高版本的连续 android 位置背景
【发布时间】:2022-01-18 14:47:33
【问题描述】:

我正在尝试通过在背景中运行位置服务来获取用户确切位置,但仅在onLocationChanged事件中当应用在前台时触发。一旦应用程序进入后台或被杀死,我的位置服务就不会从服务中触发 onLocationChanged 事件,因此我无法获取用户的确切位置。

我在我的位置服务中使用 FusedLocationProviderClient API。根据https://developer.android.com/training/location/background,位置背景有一些限制。它在文件中的什么地方说:

如果后台位置访问对您的应用至关重要,请记住,Android 通过在运行 Android 8.0(API 级别 26)及更高版本的设备上设置后台位置限制来延长设备电池寿命。在这些版本的 Android 上,如果您的应用在后台运行,它每小时只能接收几次位置更新

请帮助我实现我的功能。任何指南/帮助/代码示例/链接/提示将不胜感激。

【问题讨论】:

  • 使用foreground service 连续获取位置,即使应用程序处于后台也是如此

标签: android service background gps location


【解决方案1】:

通过调用 startForegroundService() 在您的应用中启动前台服务。当此类前台服务处于活动状态时,它会在通知区域中显示为持续通知。

【讨论】:

  • 我已经在做同样的事情,但是像 Oppo、Vivo、Samsung、Mi 这样的设备定位服务中的 OEM 品牌没有触发 onLocationChanged 事件。只有当应用程序处于前台时它才能工作并为我提供准确的 GPS 数据。但不是在后台或当用户按下设备电源按钮并关闭屏幕时
  • @Arno den Hond 使用前台服务。我在启动前台服务时犯了一个愚蠢的错误。
猜你喜欢
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-19
  • 1970-01-01
  • 2014-10-23
  • 2014-08-22
相关资源
最近更新 更多