位置广播接收器

2023-12-05

我知道 BroadcastReceiver 会监视文本、电话事件等...但是您可以将 LocationServices 作为基于位置的服务和事件运行吗?

例如,您位于某个 GPS 点附近,手机会通知您。


我想你正在寻找的是这样的东西。有一个版本LocationManager.requestLocationUpdates()这需要一个PendingIntent作为参数,这个 Intent 可以用来触发BroadcastReceiver。此代码将注册一个自定义广播以随位置更新一起触发。

Intent intent = new Intent("UNIQUE_BROADCAST_ACTION_STRING_HERE");
LocationManager manager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
long minTime;     //This should probably be fairly long
float minDistance; //This should probably be fairly big
String provider;   //GPS_PROVIDER or NETWORK_PROVIDER

PendingIntent launchIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
manager.requestLocationUpdates(provider, minTime, minDistance, launchIntent);

然后你只需注册你的BroadcastReceiver使用相同的 Intent 操作,它将接收位置更新以进行处理。当然,保留这一点PendingIntent因为你需要打电话manager.removeUpdates(launchIntent)在某一点!

最后注意事项:

因为听起来您正在尝试在应用程序不在前台时实施定期位置更新,所以请记住这一点。除非您希望您的应用被打上电池杀手的标签,否则在实现此功能时要格外小心。

您将需要使用较大的 minTime 或 minDistance 参数来大大降低位置更新的频率,以允许定位服务休息。此功能还应该附加到用户控制的首选项,以便他们可以启用/禁用您的应用程序在后台跟踪位置。

希望有帮助!

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

位置广播接收器 的相关文章

  • Android 上的多处理

    我一直在 Android 上执行一些测试 以验证并行化算法 如 FFT 的性能可以提高多少 我通过使用带有 JNI FFTW 的 pthread 和 Java 线程 来自 JTransforms 来实现这些算法 我没有像预期那样通过使用线程
  • 如何在flutter android插件包中处理android生命周期

    我需要知道 android 插件包中 flutter 应用程序视图的当前状态 现在 我观察颤振视图中的状态https docs flutter io flutter widgets WidgetsBindingObserver class
  • 如何检测手机一整圈(360 度)?

    由于我在网络上搜索没有找到任何相关答案 因此我发布了有关检测的问题360度转弯使用加速度计绕其轴的 Android 设备 例如 在横向模式下围绕 y 轴 假设在起始位置 y 值为 0 设备平坦于地面 当手机向前旋转 90 度时y 10 18
  • Android 偏好设置中的“是”或“否”确认[重复]

    这个问题在这里已经有答案了 我需要在 设置 中实现 重置 选项 单击该设置后 将打开一个简单的对话框 要求确认 我看过了DialogPreference但我似乎无法在任何地方找到好的解决方案或教程 有人可以帮我吗 我是初学者 想法甚至代码都
  • Ionic 4:硬件后退按钮重新加载应用程序

    从事项目并陷入问题 硬件后退按钮重新加载应用程序 我在此应用程序中使用 Angular Router 我退出应用程序的代码 ionViewDidEnter this subscription this platform backButton
  • Android 信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR) libwebviewchromium.so

    对于 android 4 4 我多次收到 Native crash at system lib libwebviewchromium so 错误 以下是设备包括 Xperia Z1 SO 01F 16 30 2 Galaxy Tab4 7
  • 如何切换状态栏?

    我正在寻找一种显示和隐藏状态栏的方法onClickListener 但仅显示其有效 WindowManager LayoutParams lp getWindow getAttributes if isStatusbarVisible lp
  • 标签栏随键盘一起上升

    这个问题之前已经发过 但是没有答案 Problem TabBar gt 2 个选项卡 选项卡一有一个Scrollview and an EddiText 标签二 其他 贴带时EditText 软键盘上升 TabBar与它一起 一个丑陋的解决
  • 无法读取第 0 行,第 -1 列

    我正在尝试复制使用 SQLite 管理器创建的数据库 我在其中执行了以下操作 CREATE TABLE android metadata locale TEXT DEFAULT en US and INSERT INTO android m
  • android gradle插件-离线安装

    我必须在离线电脑上安装 android gradle 插件 通过谷歌搜索 我了解到我可以通过本地 Maven 存储库来做到这一点 但从不成功的尝试和所有关于这个问题的质量保证中我知道这并不简单 我从来没有和maven一起工作过 有经验的人可
  • 从字符串中删除重音符号

    Android 中有没有什么方法 据我所知 没有 java text Normalizer 可以从字符串中删除任何重音 例如 变成 eau 如果可能的话 我想避免解析字符串来检查每个字符 java text NormalizerAndroi
  • 如何在捆绑中存储稀疏数组

    我有一个SparseArray
  • Google 的 Android OpenGL 教程是否教授了错误的线性代数?

    在帮助另一位用户解决有关该问题的问题后响应触摸事件 http developer android com training graphics opengl touch htmlAndroid教程 我下载了源代码 并且对我所看到的感到非常困惑
  • 获取接收者的设备令牌以在 Firebase 中发送通知

    所以我正在学习如何使用 firebase 发送设备到设备的通知 我看到了这个answer https stackoverflow com a 42548586 5237289发送通知 看起来很简单 现在 我知道要获取发件人的令牌 它应该如下
  • 什么是版本代码主要?和versionCode有什么区别?

    我刚刚发现PackageInfo versionCode https developer android com reference android content pm PackageInfo html versionCode在 Andr
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • 如何将 Android 应用程序添加到已在 iOS 应用程序中使用的现有 Firebase 项目?

    我一直在我的 iOS 应用程序中使用 Firebase 项目 我现在想开始为 Android 应用程序使用相同的 Firebase 项目及其所有数据库和存储 在您的应用程序下Overview菜单 你应该按添加另一个应用程序并选择Androi
  • 手动添加带有依赖pom/iml文件的aar

    由于我无法使用私人 Maven 来共享我的库 因此我正在考虑共享 aar 并导入到另一个项目中 当 aar 和 jar 文件不包含任何依赖项时 就会出现问题 因此 一旦我在android studio中手动导入aar 使用Import JA
  • 使用Gradle组装时如何更改Android应用程序包名称?

    是否可以使用 Gradle 更改 Android 应用程序的包名称 我需要编译同一应用程序的两个副本 并具有唯一的包名称 这样我就可以向市场发布两次 作为使用的更简单的替代方案产品口味 正如伊森的回答 https stackoverflow
  • Android:通过查找带有标签而不是 ID 的容器来添加片段

    我正在使用 for 循环创建片段的多个实例 在每个片段中 我需要添加另一组子片段 为此 我需要找到正确的容器 如果我使用容器的 ID 所有子片段都会添加到第一个父片段 而不是它们自己的父片段 在我的主要片段中 for ParentFragm

随机推荐

  • 将光标设置到 CKEditor 中的特定位置

    有没有办法将光标位置设置为 CKEditor 内的已知索引 我想这样做是因为当我更改编辑器内的 html 时 它会将光标重置到插入元素的开头 这是一个问题 因为我在用户键入时动态更改内容 如果我知道我想将光标设置回编辑器内的已知字符位置 例
  • 尝试获取本周星期一的日期

    我已经实现了一种方法来获取本周星期一的日期 并且我已将星期一指定为本周的第一天 但是 无论我做什么 它都会返回 Sun Mar 24 15 03 07 GMT 2013 我看不出这里有什么问题 有人可以帮忙吗 public static D
  • 使用自定义顺序和包含逗号的值编写 Excel VBA 排序代码

    在 VBA 中 Excel 允许使用 CustomOrder 参数对值进行排序 以选择排序的序列项 不幸的是 项目序列是用逗号分隔的 并且我的排序项目之一包含逗号 例如 我想按第二列中的类别对第一列中的数据进行排序 空中 陆地或海上 类别包
  • Android - 将 URI 转换为棒棒糖上的文件路径

    我目前正在尝试制作一个音频媒体播放器 我目前正在运行棒棒糖 我在设置媒体播放器的数据源时遇到问题 首先 这是我设置数据源的方法 public void playSong player reset Song selSong songs get
  • 绘制调用在 Three.js 中如何工作?

    我有许多可能很长的折线 或很短 顶点数非常不稳定 要显示 所以我正在考虑将它们包装在一堆固定大小 假设有 10000 个顶点 的位置BufferAttribute并发送一份drawcall每条折线 如果多段线跨越 10000 限制边界 我可
  • 使用 Amazon Dynamodb 进行不区分大小写的查询

    在 DynamoDB 中 字符串值区分大小写 在我的应用程序中 用户可以在数据库中搜索配置文件名称 但是 如果他们搜索 alan 则搜索结果中不会返回 Alan 如何允许用户指定不区分大小写的搜索以检索良好的结果 仅供参考 我将 Dynam
  • 如何在 Ruby 中捕获终端箭头键?

    如何捕获终端中的箭头键 而用户不必在箭头键后按 Enter 键 查看 Ruby 控制台库红宝石特米奥斯 and ncurses 红宝石
  • 使用 C# 登录 Azure AD。获取刷新令牌和访问令牌

    Task 我需要创建一个 WPF 应用程序 它将与 EWS Exchange Web 服务 一起使用 我也有两个限制 登录只能进行一次 应该使用刷新令牌重新连接 它应该支持 2FA 我的解决方案部分 我使用 OAuth 连接到 Azure
  • 如何将 HSM 中存储的私钥转换为 C# 中的 SignedXml.SigningKey

    我正在尝试使用存储在 HSM 中的证书来实现一些 XML 签名演示 我从此链接中找到了一些有趣的示例 使用 X509Certificate2 签署 XML 文档并将其修改为使用带有 PKCS11Interop 包装器的 HSM 内的证书和密
  • MKMapRect 缩放太多

    我使用此代码在地图上显示所有注释 MKMapRect zoomRect MKMapRectNull for id
  • R编程中,关于逆矩阵及其乘法

    这是我在 R初学者指南 练习中的解决过程 gt Q 1 2 3 1 1 2 3 2 4 2 1 3 2 3 0 gt solve Q 1 2 3 1 0 12 0 36 0 16 2 0 08 0 24 0 44 3 0 32 0 04 0
  • 选择:jQuery 插件...在 asp.net 回发后不起作用

    我在用http harvesthq github io chosen 控制在drop down list 一切都很顺利 但我面临着一个问题 比如我是否设置下拉列表的属性 即AutoPostBack true 选择一项后控件将失去其属性并转换
  • EF Core 5 包含多个列

    我有两个模型 看起来像这样 public class Filter public string Key get set public Guid ProgramId get set public class MyEntity public s
  • Hibernate 可以使用 MySQL 的“ON DUPLICATE KEY UPDATE”语法吗?

    MySQL 支持 INSERT ON DUPLICATE KEY UPDATE 语法允许您 盲目 插入数据库 并回退到更新现有记录 如果存在 当您想要快速事务隔离并且想要更新的值取决于数据库中已有的值时 这非常有用 作为一个人为的示例 假设
  • 无法使用 Curl 将查询复制到 Amazon Manage Kindle。我缺少什么?

    由于亚马逊 管理你的 Kindle 的网络界面极其缓慢 我试图弄清楚如何构建一个应用程序来连接到为管理页面提供信息的未记录服务 我现在已经确定了要使用哪些 URL 和参数来检索执行 CRUD 操作所需的 JSON 数据 但我无法成功地使用
  • 如何在 Shiny 中创建倒计时器?

    我希望能够为我正在开发的 R Shiny 应用程序创建一个倒计时器 例如 20 分钟 然后计时器发出蜂鸣声 用户可以通过单击开始 停止 来启动 停止和重置重置按钮 我见过一些针对特定日期 时间的倒计时示例 但还没有遇到通用计时器的倒计时示例
  • PIP安装不起作用(六、numpy和python-dateutil要求)

    我是 Python 新手 想在 Mac 上安装 Python 3 5 的 Pillow 包 我用pip install pillow命令并收到此错误 Jaspers MBP jasperherrmann pip install pillow
  • Python 布尔求值顺序

    我正在使用 Python 中的链表 但无法完全弄清楚它发出的错误语句 这是我的代码 用于从列表头部开始递增节点 while current next node is not None and value gt current next no
  • 使用 asp.net 发送带有嵌入图像的邮件

    使用 asp net 发送带有嵌入图像的邮件 我已经使用了以下但它无法工作 Dim EM As System Net Mail MailMessage New System Net Mail MailMessage txtFrom Text
  • 位置广播接收器

    我知道 BroadcastReceiver 会监视文本 电话事件等 但是您可以将 LocationServices 作为基于位置的服务和事件运行吗 例如 您位于某个 GPS 点附近 手机会通知您 我想你正在寻找的是这样的东西 有一个版本Lo