如何减少基于位置的 Android 应用程序的功耗?

2024-04-27

如何减少应用程序的功耗?我可以使用什么代码来实现这个?


有几种不同的方法可以减少尝试获取位置信息时所用的电量。

  1. Use the 最后已知位置 http://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation%28java.lang.String%29而不是尝试确定当前位置。

    // Get a Location Manager
    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    
    // Try to get the last GPS based location
    Location l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    
    // Fall back to cell tower based location if no prior GPS location
    if (l == null) {
        l = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
    }
    
  2. 使用较便宜的位置提供商。你可以选择LocationManager.NETWORK_PROVIDER http://developer.android.com/reference/android/location/LocationManager.html#NETWORK_PROVIDER直接或指定criteria http://developer.android.com/reference/android/location/Criteria.html您关心的位置并让 Android 告诉您要使用哪个位置提供商。

    // Select the criteria you care about
    Criteria c = new Criteria();
    c.setAccuracy(Criteria.ACCURACY_COARSE);
    c.setPowerRequirement(Criteria.POWER_LOW);
    
    // Let the system tell you what provider you should use for your criteria
    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    String p = lm.getBestProvider(c, true);
    
    // Call other Location Manager functions using the above provider...
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何减少基于位置的 Android 应用程序的功耗? 的相关文章

随机推荐

  • 在DOS中创建带有echo的文件而不插入回车符

    我想在 DOS 中的 CIFS 挂载上创建一个新文件 如果我做 echo hello gt foo txt hello 的末尾会有一个 CR 如何使用 echo 在 DOS cmd 中创建文件而不自动附加 CR 它导致 samba 和我的
  • 什么时候可以将函数绑定到另一个名称?

    在解释器中工作时 将函数绑定到名称通常很方便 例如 ghci gt let f 1 ghci gt f 1 2 这是别名f到函数 1 简单的 然而 这并不总是有效 我发现导致错误的一个例子是尝试使用别名nub来自Data List模块 例如
  • 在 IntelliJ 中创建新包

    我刚刚从使用 Eclipse 多年转向 IntelliJ 的美丽新世界 我正在努力解决那些拖慢我速度的小事情 当你知道如何去做时 最新的希望是显而易见的 我在源文件夹下创建一个新包 uk ac cam admin 我右键单击这个新包来创建另
  • 将仅限 HTTPS 的自定义域正确分配给 flex env

    将自定义域映射到 Google App Engine 项目的正确方法是什么 我已经添加了自定义域 设置了所有 DNS 记录等 并且它正在工作 但如何仅强制执行 HTTPS 就像生成的自定义域一样 从阅读周围many我看过的帖子secure
  • 当非特权用户运行 C/asm 程序时,会对 Linux 造成什么危害?

    我一直在考虑一种场景 让用户 可以是任何人 可能有恶意 提交在 Linux PC 我们称之为基准节点 上运行的代码 目标是为单线程例程创建一种自动化基准测试环境 假设一个网站向代理发布了一些代码 该代理将此代码交给基准节点 而基准节点仅与代
  • postgres union 是否保证调用有副作用的函数时的执行顺序?

    我正在使用 postgres 9 3 并尝试确保从 sql 语句调用时按顺序调用存储过程 以下操作是否有效 确保首先调用 foo 然后调用 bar select null void from select 1 from foo union
  • curl:(7)无法连接到192.168.99.100端口31591:连接被拒绝

    这些是我的豆荚 hello kubernetes 5569fb7d8f 4rkhs 0 1 ImagePullBackOff 0 5d2h hello minikube 5857d96c67 44kfg 1 1 Running 1 5d2h
  • “char *_EXFUN(index,(const char *, int));”的含义

    我发现这是 eclipse idexer intelisence 的一个命题 无论它叫什么 就是这样 char EXFUN index const char int 首先 它看起来像一个返回 char 指针的函数 但参数 如果它是一个函数
  • 使用 M1 在 dockerized Linux 上安装节点画布

    我有以下Dockerfile我在 MacBook Air M1 上运行 所以在 docker 中我有带有 M1 的 linux FROM node 16 7 0 WORKDIR work CMD while true do sleep 10
  • Spirit qi 解析为嵌套函数的抽象语法树

    我正在尝试使用 boost 的spirit qi 解析器创建一个解析器 它正在解析包含三种类型值的字符串 常量 变量或函数 这些函数可以相互嵌套 测试字符串是f a b f g z x g x h x c where a e是常数 f r是
  • 如何获得修改任何参数的函数?

    我的目标 我必须创建一个将两个分数相加的函数 我定义了一个新的struct typedef 称为fraction 该函数不能有返回类型fraction 它一定要是void 因此它必须修改输入的参数之一 我该如何实现这一点 也许是指点 您将如
  • 从状态栏中删除通知图标

    我在状态栏中显示一个图标 现在我想在打开该内容时立即删除该图标 一段时间后如果我们收到任何警报 该图标将再次显示 我怎样才能做到这一点 使用NotificationManager取消您的通知 您只需提供您的通知 ID https devel
  • 将一个表的所有行复制到另一个表

    我有两个数据库MySQL and SQL Server 我想在其中创建表SQL Server并复制表中的所有行MySQL到新表中SQL Server 我可以在中创建表SQL Server与 一样MySQL 使用以下代码 List
  • 自 2012 年以来,WinSock 注册 IO 性能是否有所下降?

    我最近使用 MS 为该 API 提供的稍微可接受的文档编写了基于 WinSock Registered IO RIO 的 UDP 接收 最终的性能非常令人失望 单套接字性能有些稳定 约为每秒 180k 数据包 使用多个 RSS 队列 即多个
  • 选择从查询中检索列名称的列

    我正在寻找一种优雅的方法来从表 A 中选择列 其中列名是从表 B 上的查询中检索的 对表 B 的查询结果 col01 表 A 有几个名为 col01 col02 col03 最终查询应该是为了结果 result from B effecti
  • 根据区域设置获取货币 ISO 4217 代码

    假设我用以下命令解析 HTTP Accept Language 标头Locale acceptFromHttp http www php net manual en locale acceptfromhttp php是否有一种简单可靠的方法
  • Java 中的字符串拆分:可变长度的前向和后向

    我想使用数字作为分隔符来破坏 Java 中的字符串 但保留数字 一些研究表明 使用 String 中的 split method 是合适的 但我不明白如何做到这一点 为了进一步解释我的问题 我将使用一个例子 Input 20 55 50 0
  • 使用 VBA 从分布生成随机数到内存

    我想从 VBA Excel 2007 中选定的分布生成随机数 我目前正在使用带有以下代码的分析工具库 Application Run ATPVBAEN XLAM Random A B C D E F Where A how many var
  • 如何在 POSIXct 中获取一天的开始

    我的一天开始于2016 03 02 00 00 00 Not 2016 03 02 00 00 01 我如何开始一天的工作POSIXct当地时间 我的困惑可能来自于 R 认为这是 2016 03 01 的结束日期这一事实 鉴于 R 使用 I
  • 如何减少基于位置的 Android 应用程序的功耗?

    如何减少应用程序的功耗 我可以使用什么代码来实现这个 有几种不同的方法可以减少尝试获取位置信息时所用的电量 Use the 最后已知位置 http developer android com reference android locati