Android O 中的 Doze 模式下前台服务未接收位置更新

2023-12-09

我有一个前台服务需要获取单个位置更新。

它由特定的广播启动,启动后它只需在我们的后端发出一个请求。当它收到另一个广播时,它会请求位置更新(一次),执行另一个后端请求,然后自行停止。

编辑:澄清一下,服务本身执行位置更新和后端请求。在这方面它独立于主应用程序。

无论手机处于唤醒状态还是处于打瞌睡模式,此功能都适用于 Lollipop 和 Marshmallow。但由于某种原因,在 Android O 上,该服务在 Doze 模式下永远不会获取位置更新。网络工作正常,因为它的第一个请求在这两种情况下都会通过。另外,如果我在位置请求运行时唤醒手机,它将获得更新。如果我把它放在维护窗口中也是一样。

Android O 确实引入了一些限制背景位置但正如该页面提到的,前台应用程序行为(应用程序可见或前台服务正在运行)应保留并与以前版本的 Android 类似。

这是开发者预览版中的问题还是我错过的限制?


看一下 LocationUpdatesForegroundService 示例:Android O 的代码示例,也许你做错了什么。

LocationUpdatesForegroundService 示例 - 展示如何使用 当应用程序活动时,前台服务获取位置更新 不可见。对于在 Android O 上运行的应用程序(甚至是面向 Android O 的应用程序) Android 7.0(API级别24)或更低),后台更新有限 每小时只有几次。使用前台服务是一种方法 收到更频繁的更新。

在 GitHub 上获取:Java

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android O 中的 Doze 模式下前台服务未接收位置更新 的相关文章

  • 如何从 SDK 实现每个会话的 Google Places 自动完成功能?

    是否可以从 Android 和 iOS 应用程序的 place sdk 实现基于会话的自动完成 根据 6 月 11 日生效的新 Google 地图框架定价 对自动完成的请求可以分为基于击键 会话的请求 我找不到描述实施步骤的文档 除了这个参
  • 检查 WebView 元素时的 UiAutomator 错误

    I have recently started automation testing in android and was using UiAutomator tool for inspecting UI elements Surprisi
  • android edittext中的字符映射

    我想让我的编辑文本就像我写字符 g 时一样 它是相关的映射自定义字符应该写成印地语中的 我认为应该有字符映射 但没有知识任何人都可以帮助我 怎么做 其他应用程序https play google com store apps details
  • 我在布局上看不到任何 FirebaseRecyclerAdapter 项目

    我试图将数据从 Firebase 数据库检索到我的布局 但我看不到任何项目FirebaseRecyclerAdapter在布局中 请帮忙 我按照一个教程展示了如何做到这一点 当我运行应用程序时 我没有看到任何项目 但我可以滚动 public
  • Android Studio:XML 布局中的“包装在容器中”

    编辑 XML 布局文件时 Eclipse 有一项称为 包裹在容器中 的功能 重新格式化 gt Android gt 可让您选择一个或多个视图并在其周围包裹您选择的布局 Android Studio中有类似的东西吗 目前正在实施中 问题 69
  • AdapterContextMenuInfo 始终为 null

    我尝试通过 android 开发文档中的书来做到这一点 this didn t create a menu i don t know why registerForContextMenu getListView setListAdapter
  • 按下按钮时应用不同的样式

    有没有办法在按下按钮时将样式应用于按钮 如果我有一种风格样式 xml
  • 自定义首选项中的android首选项水平分隔线?

    我创建了自己的自定义首选项对象来扩展首选项 我创建它们只是因为这些自定义数据类型没有首选项 一切正常 但我的自定义首选项没有相同的外观 因为它们缺少系统首选项对象具有的水平分隔线 我已经查找了创建水平分隔线的代码 但我找不到它是在哪里完成的
  • 如何更改终端的默认目录?

    我想更改 Android Studio v2 2 2 终端的默认目录 当我打开终端时 它基于项目的目录 C 项目路径 我经常需要使用adb shell 所以我必须导航到 SDK 路径 平台工具 才能使用 adb 命令 是否可以更改终端的默认
  • Android 深度链接至 Instagram 应用

    Instagram 已经发布了 iOS 深层链接的 url 方案 但尚未为 Android 创建文档 有没有办法深入链接到 Android 上的 Instagram 应用程序 以转到 Instagram 应用程序中的特定位置 例如 Inst
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • 使用片段时应用程序崩溃

    我正在处理碎片和 我的代码中有一个我找不到的问题 logcat 指向我的一个片段中的这段代码 Override public View onCreateView LayoutInflater inflater ViewGroup conta
  • Android 构建发布失败,原因为:java.lang.ArrayIndexOutOfBoundsException:213(pr​​oguard 问题)

    我的项目使用调试构建变体构建得很好 但使用发布变体 Android Studio 会抛出 引起原因 java lang ArrayIndexOutOfBoundsException 213 可能是什么问题 如果我设置minifyEnable
  • Mipmap 与可绘制文件夹[重复]

    这个问题在这里已经有答案了 我正在使用 Android Studio 1 1 Preview 1 我注意到 当我创建一个新项目时 我得到以下层次结构 不同 DPI 的 Mipmap 文件夹 不再有不同 DPI 的可绘制文件夹 我应该将所有资
  • Android 中如何通过彩信发送图片?

    我正在开发多媒体应用程序 我正在通过相机捕获一张图像 并希望将该图像和文本发送到其他号码 但我不知道如何通过彩信发送图像 MMS 只是一个 http post 请求 您应该使用执行请求额外的网络功能 final ConnectivityMa
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • Android Studio 缓慢的增量构建

    我已经完成了许多步骤来完善我们的构建系统 those https stackoverflow com questions 16775197 building and running app via gradle and android st
  • 没有支持 FEATURE_CAMERA_EXTERNAL 的 Android 设备

    根据this doc https source android com devices camera external usb cameras一些 Android 设备允许使用 Camera2 API 访问外部 USB 摄像头 我检查了大约
  • 在 Android 应用程序资源中使用 JSON 文件

    假设我的应用程序的原始资源文件夹中有一个包含 JSON 内容的文件 我如何将其读入应用程序 以便我可以解析 JSON See 开放原始资源 http developer android com reference android conte
  • 错误:(23, 13) 无法解决:com.google.android.gms:play-services:11.2.0“安装存储库和同步项目”不起作用

    我正在尝试在我的 Android 应用程序中获取位置并更新到服务器 这是我的 Gradle 代码 我在这里包含了compile com google android gms play services 11 2 0 这条线是从文档中 htt

随机推荐

  • elasticsearch与neo4j数据库的集成

    我正在尝试将elasticsearch与我的neo4j数据库一起使用以进行快速查询 我尝试了很多网站 但它们都是旧文章 所以我没有任何明确的想法 到目前为止我遵循的步骤 安装了neo4j 安装了elasticsearch 将粘贴的弹性搜索插
  • 翻译 JQuery Mobile 小部件

    Using i18next 如何翻译 JQuery Mobile 小部件 具体来说 我想知道如何在不诉诸使用的情况下做到这一点data i18n target修改生成的内部元素 因为这很脆弱 因为未来的小部件版本可能会更改生成的代码 是否有
  • 有没有办法将多个命令输出复制到剪贴板?

    我有 4 个命令链接在一起 我想立即将所有四个命令的输出复制到剪贴板 基本上将每个命令的输出附加到剪贴板 这可能吗 我正在运行的命令是这样的 ipconfig findstr IPv4 systeminfo findstr B C OS N
  • 使用 Shell 函数运行 exe 时出现文件未找到错误

    我正在从用户表单运行一个子程序 该子程序应该运行在工作文件夹中找到的 exe 文件 如下所示 Sub RunProcessor If MsgBox Run simulation vbYesNo vbNo Then Exit Sub Else
  • C# Graphics.CopyFromScreen“参数无效”

    我用 C 制作了一个应用程序 它将连续执行屏幕捕获并使用计时器将其显示在 PictureBox 中 运行几秒后 出现ArgumentException 下面是代码和具有 ArgumentException 的行 private void t
  • 使用请求库的重试历史记录

    我正在我的 Orchestrate 脚本中构建一个新的重试功能 我想知道尝试连接到特定 URL 时我的请求方法发生了多少次 以及 如果可能 发生了什么错误 现在 我需要这个用于记录目的 因为我正在开发一个消息系统 一旦我在一个消息系统中工作
  • 如何访问从故事板加载的视图控制器的属性?

    我有一个创建的视图控制器实例instantiateViewControllerWithIdentifier像这样 TBSCTestController testController self storyboard instantiateVi
  • 使用 opencv 进行音频输出和视频处理

    我正在使用 opencv 处理视频 但同时我需要播放音频并简单地控制它 例如大声或当前帧号 我想我应该用 ffmpeg 创建一个并行进程 但我不知道该怎么做 你能解释一下该怎么做吗 或者你知道另一种解决方案吗 I think ffmpeg应
  • 在共享存储 Xamarin 表单中保存文件

    我需要在android的共享存储中保存一个文件 我发现了这个链接 gt https developer android com training data storage shared documents files 我正在使用依赖项服务
  • 如何在 node.js selenium-webdriver 中模拟右键单击?

    我在用用于 Node js 的 selenium webdriver 如何使用该驱动程序模拟右键单击 我在官方文档中找不到这个 谢谢 wmash 你帮我找到解决方案 答案 已找到here driver actions click eleme
  • 如何在不使用构造函数 DI 的情况下创建 Http 实例? (RC.5+) [重复]

    这个问题在这里已经有答案了 我需要在不使用 Angular2 的 DI 的情况下获取 Http 的实例 constructor private http Http 以下代码摘自另一个 stackoverflow 问题 并且它适用于 Angu
  • 如何允许用户在 Android 应用程序中添加和删除选项卡

    我正在开发一个使用选项卡的应用程序 每个选项卡都链接到一个网页 用户可以使用 webview 查看该网页并与之交互 我遇到的问题是实现一个添加和删除命令 用户可以根据需要使用该命令删除选项卡 或者添加一个带有自己选择的 url 的选项卡 其
  • 为什么 std::make_unique 调用复制构造函数

    我想知道为什么 make unique 调用复制构造函数但不调用默认构造函数 Node std cout lt lt default Node std cout lt lt Delete Node const Node other std
  • jQuery Mobile / Handlebars - 打开面板隐藏 data-role=content div

    我正在尝试将 Handlebars 与 jQuery mobile 一起使用 我正在使用 jQuery 1 9 1 jQueryMobile 1 4 Handlebars 1 1 2 div div div h1 Title h1 div
  • Rails db:migrate 与 rake db:migrate

    我注意到在 Rails 5 中生成数据迁移时 有些人使用rails db migrate over rake db migrate 有人可以解释一下两者之间的区别吗rails和rake数据库迁移命令 这是否意味着rake命令在 Rails
  • 替换 int 中的字节

    一个int由4个字节组成 我如何用新字节替换这 4 个字节之一 换句话说 我正在寻找一种方法 int ReplaceByte int index int value byte replaceByte implementation 例如 如果
  • 使用 Docker Compose 和 WordPress 映像设置 Xdebug

    我正在尝试使用 docker compose 设置 Xdebug 我正在使用 PhpStorm IDE 并且我正在使用的 Docker 映像安装 PHP 7 2 我正在尝试在这个 WordPress 图像的上下文中执行此操作 这是我当前的
  • 使用相同的 Visual Studio 解决方案部署多个 WP7 应用程序?

    如何使用同一 Visual Studio 解决方案部署多个 WP7 应用程序 我需要改变什么才能实现这一目标 更改 Xap 文件名 程序集 GUID 和标题无法实现此目的 事实上 VS 用新标题覆盖旧的 但不部署单独的应用程序 背景 我们有
  • Javascript 将选定的复选框限制为 2 个

    我想禁用选择超过 2 个选择复选框 但我无法使用我的 javascript 代码做到这一点 我怎样才能做到这一点 btn addEventListener click function var ourRequest new XMLHttpR
  • Android O 中的 Doze 模式下前台服务未接收位置更新

    我有一个前台服务需要获取单个位置更新 它由特定的广播启动 启动后它只需在我们的后端发出一个请求 当它收到另一个广播时 它会请求位置更新 一次 执行另一个后端请求 然后自行停止 编辑 澄清一下 服务本身执行位置更新和后端请求 在这方面它独立于