定期获取位置(坐标),而不会显着增加电池消耗

2023-11-24

我正在开发一个 Android 应用程序;该应用程序需要定期(每 10 分钟)向网络服务发送当前位置(坐标)。但是......我对更正确的方法(对设备电池更友好)感到有点困惑。

我读了这个answer和她的方法_getLocation()看起来不错;但我不知道该方法是否可以获得我需要的位置的可用性;总可用性...

我想,如果使用 GSM / WIFI 无法定位,应用程序选择 GPS 方法。

这就是这个方法的原因吗?

private void _getLocation() {
    // Get the location manager
    LocationManager locationManager = (LocationManager) 
            getSystemService(LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    String bestProvider = locationManager.getBestProvider(criteria, false);
    Location location = locationManager.getLastKnownLocation(bestProvider);
    try {
        lat = location.getLatitude();
        lon = location.getLongitude();
    } catch (NullPointerException e) {
        lat = -1.0;
        lon = -1.0;
    }
}

有人知道一种定期获取设备坐标的方法......而不显着增加电池消耗吗?


如果您担心电池电量并且对 10 分钟间隔不太严格,您可以尝试使用 Passive Provider 而不是 GPS/Coarse。
通常其他应用程序会经常请求位置,因此您无需担心。
如果你要求严格,那么你可以尝试自己询问位置,以防在过去的时间间隔内没有收到信息。
这是使用被动提供程序的示例。

LocationManager locationManager = (LocationManager) this
        .getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {}

    @Override
    public void onProviderEnabled(String provider) {}

    @Override
    public void onProviderDisabled(String provider) {}

    @Override
    public void onLocationChanged(Location location) {
        // Do work with new location. Implementation of this method will be covered later.
        doWorkWithNewLocation(location);
    }
};

long minTime = 10*60*1000;
long minDistance = 0;

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

定期获取位置(坐标),而不会显着增加电池消耗 的相关文章

  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • Antlr 解析器运算符优先级

    考虑以下语法 我对运算符优先级有疑问 例如 res 2 a b有一个类似的解析树res 2 a b 我知道问题出在哪里 但我没有想到没有相互左递归的 漂亮 解决方案 你能帮我一点忙吗 该语法与自定义访问者一起使用 grammar Math
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • 带有 Maven Wrapper 的 Java 17 导致无法识别的 VM 选项“MaxPermSize=512m”

    I use OpenJDK 17 https jdk java net 17 使用 Maven Wrapper 3 8 2 从春季初始化 https start spring io Maven项目 JAR打包 Java 17 Spring
  • MySQL 查询计算上个月

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • NSArrayController 无需将大型数据集加载到数组中

    我想使用 NSArrayController 向 NSTableView 提供数据 我面临的问题是我不想将所有数据预先加载到数组中 然后使用数组控制器setContent 方法 我的数据模型是一个管理数百万条记录的大型现有代码库 它包含有效
  • 如何在 Angular 4 中翻译 mat-paginator?

    你知道如何在 Angular 中翻译 每页项目 吗mat paginator标签 这mat paginator是材料设计中的一个元素 您可以使用MatPaginatorIntl为了这 威尔 豪厄尔制作 https github com an
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • 如何修复:“无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件间接引用的”消息? [复制]

    这个问题在这里已经有答案了 我正在尝试使用这个字符串 amountStr amountStr replace replace replace 但我收到一条错误消息 我知道我收到的错误消息是因为我刚刚发布的字符串已过时 所以我想知道该字符串的
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前
  • Android 材料芯片组件崩溃应用程序。无法膨胀 xml

    Tried Chip来自两个支持库的组件 com google android support design 28 0 0 rc01和材料 com google android material material 1 0 0 rc01 堆栈
  • 禁用允许文本选择的

    残疾人可以吗
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • 我的智能手机每秒可以执行多少次 FFT? (用于执行语音识别)

    我正在探索语音识别和 DSP 因此我想在我的智能手机上实现一个简单的声音频率分析仪 我有一部 iPhone 和一部运行 Android 的三星 Nexus S 我以前在Matlab中做过基本的DSP 根据我的理解 我需要执行 FFT 来获取
  • 如何使用 UWP MarkupExtension 类?

    Fall Creators 更新 SDK 添加了标记扩展类 非常棒 https learn microsoft com en us uwp api windows ui xaml markup markupextension 所以我创建了一
  • 创建交互式应用程序原型的最佳方法是什么?

    这个问题应该从一般的角度来解释 而不是仅仅针对网络应用程序或桌面应用程序 我一直在寻找一种简单易用的方法来为 Web 应用程序创建交互式原型 我想使用一种技术 允许简单的 UI 创建 特别是在进一步迭代中重新创建和修改 UI 用模型数据填充
  • android:TimePickerDialog 阻止用户选择过去的时间,并可以选择具有新日期的未来时间

    我正在使用这个链接Android TimePickerDialog 设置最大时间 我是安卓新手 借助此代码 我无法选择过去的时间 但我们无法选择未来的时间 当在时间选择器对话框模式中选择 12 时 根据第二天而不是过去的一天自动更改为 am
  • AngularJS:扩展输入指令

    我想知道是否可以扩展 Angular 的输入指令 我想将一些侦听器附加到页面上的所有输入字段 我认为你可以用以下方式装饰现有模块 provide decorate 但我不知道如何使用指令 更准确地说是输入指令 来做到这一点 那么 有人能把我
  • 如何将wav文件转换为浮动幅度

    所以我问了标题中的所有内容 我有一个 wav 文件 由 PyAudio 从输入音频编写 我想将其转换为与声级 振幅 相对应的浮点数据 以进行一些傅里叶变换等 有人有将 WAV 数据转换为 float 的想法吗 我已经找到了两种不错的方法来做
  • Java中的字符串和字符数组

    我是一名刚从C 转向Java的学生 在 Java 中 为 String 和 Char 数组定义单独的数据类型的主要原因是什么 两者有什么区别 由于我只学过C 到目前为止我的印象是它们是同一件事 如果可能的话请澄清 String是不可变的 C
  • 加载和存储是唯一需要重新排序的指令吗?

    我读过很多关于内存排序的文章 它们都只说 CPU 重新排序加载和存储 CPU 我对 x86 CPU 特别感兴趣 是否只重新排序加载和存储 而不重新排序它拥有的其余指令 乱序执行保留了按程序顺序运行的错觉对于单线程 核心 这就像C C as
  • 停止服务内的线程

    我在服务中有一个线程 我希望能够在按下时停止该线程buttonStop在我的主要活动课上 在我的主要活动课上 我有 public class MainActivity extends Activity implements OnClickL
  • C++中通过引用传递指针

    我有一个函数 将迭代器传递给 char 缓冲区 这也是一个 char 该函数需要递增迭代器 无论如何 我发现将迭代器传递到函数中的一个好方法是通过引用传递指针 bool myFunction unsigned char iter 但是 我听
  • 将 CSV 文件转换为 Lua 中定义键的表

    我正在学习 Lua 来构建飞行模拟器的脚本 我有一个 CSV 文件 如下所示 Poti city Poti red 295731 42857144 617222 85714285 Lanchhuti city Poti red 299217
  • 使用Xcode和SDK构建胖静态库(设备+模拟器)4+

    理论上 我们似乎可以构建一个包含模拟器以及 iPhone 和 iPad 的静态库 然而 Apple 没有我能找到的相关文档 并且 Xcode 的默认模板也没有配置为执行此操作 我正在寻找一种可以在 Xcode 内完成的简单 可移植 可重用的
  • 是否可以在共享内存中存储多态类?

    假设我有课Base and Derived public Base 我使用 boost interprocess 库构建了一个共享内存段 是否可以有类似这样的代码 Base b new Derived write b one app wri
  • 用于 Asp.net Mvc 的 Google Chart HtmlHelper

    是否有任何 HtmlHelper 扩展谷歌图表API 我喜欢使用一些基本图表 例如饼图 条形图 Soe Moe 谷歌说你插入一个像这样的图表 img src alt Sample chart 所以编写一个像这样的 HtmlHelper 应该
  • 在 Java 中,如何解析 xml 模式 (xsd) 以了解给定元素的有效内容?

    我希望能够读取 XML 模式 即 xsd 并在遍历它时从中知道什么是有效属性 子元素和值 例如 假设我有一个 xsd 此 xml 将根据它进行验证
  • 如何回滚 EmberData 中的关系更改

    我有两种亲子关系模型 训练和锻炼 App Training DS Model extend exercises DS hasMany App Exercise App Exercise DS Model extend training DS
  • 将 WSSE SOAP 标头添加到 Web 参考

    我正在尝试将 WSSE SOAP 标头添加到我的服务调用中 但大多数示例都集中在 WCF 上 我没有使用 WCF 我添加了 Web 参考 WSDL 我尝试了各种方法但没有成功 例如 覆盖 GetWebRequest 方法 protected
  • 通过 Ajax 调用使用 Struts 2 的 HTTP 数组参数

    我在将数组参数发送到 Struts 2 操作类时遇到问题 我使用的是struts 2 1 8 1 这是一些示例代码 public class MyAction extends ActionSupport private String typ
  • C# ADAL AcquireTokenAsync() 不带弹出框

    我们正在编写一个 WCF 服务 该服务必须与 Dynamics CRM 2016 Online 集成 我正在尝试使用 ADAL 进行身份验证 使用方法AcquireTokenAsync 问题是 它会显示一个弹出框 提示用户输入凭据 当然 我
  • 定期获取位置(坐标),而不会显着增加电池消耗

    我正在开发一个 Android 应用程序 该应用程序需要定期 每 10 分钟 向网络服务发送当前位置 坐标 但是 我对更正确的方法 对设备电池更友好 感到有点困惑 我读了这个answer和她的方法 getLocation 看起来不错 但我不