Android M startActivity电池优化

2024-01-08

我正在开发一个应用程序,如果用户靠近某个地方,它应该提醒用户。 当然,如果手机处于空闲状态,也必须这样做。 现在有了 DOZE,我明白我必须将我的应用程序列入白名单,并且为了做到这一点,我看到我可以通过操作请求启动一个意图,这要归功于 Buddy 在中的回答这个帖子 https://stackoverflow.com/questions/33114063/how-do-i-properly-fire-action-request-ignore-battery-optimizations-intent

Intent intent = new Intent();
String packageName = context.getPackageName();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (pm.isIgnoringBatteryOptimizations(packageName))
    intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
else {
    intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
    intent.setData(Uri.parse("package:" + packageName));
}
context.startActivity(intent);

好吧,这应该太容易了...因为谷歌不喜欢这种方法,如果你这样做,你的应用程序应该被禁止从游戏商店...没有评论... 好的,所以方法应该是让用户进入电池设置并手动将您的应用程序添加到 DOZE 的白名单中...是的,这应该是一堵需要攀爬的大墙...无论如何似乎是唯一的方法...现在答案是: 我可以使用意图去查看电量使用情况摘要,以这种方式(谢谢克里斯 https://stackoverflow.com/questions/3673036/create-battery-usage-intent-android):

Intent powerUsageIntent = new Intent(Intent.ACTION_POWER_USAGE_SUMMARY);
    ResolveInfo resolveInfo = getPackageManager().resolveActivity(powerUsageIntent, 0);
// check that the Battery app exists on this device
    if(resolveInfo != null){
        startActivity(powerUsageIntent);
    }  

但如何直接进入应用程序列表选择电池优化呢?

感谢您的任何答复。


要打开应用程序列表以选择电池优化,您可以使用以下代码示例:

private void openPowerSettings(Context context) {
    Intent intent = new Intent();
    intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
    context.startActivity(intent);
}

它不需要有<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>权限,所以发布到Google Play应该就可以了(详情请查看this https://stackoverflow.com/questions/33114063/how-do-i-properly-fire-action-request-ignore-battery-optimizations-intent线程和对此问题的评论)。

NOTE

添加这一行

intent.setData(Uri.parse("package:" + mContext.getPackageName()));

将导致崩溃“致命异常:android.content.ActivityNotFoundException 找不到处理 Intent { act=android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS dat=package:io.demo.example } 的活动”。用户必须在列表中找到该应用程序,似乎无法直接跳转到我们的应用程序。

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

Android M startActivity电池优化 的相关文章

  • 在S3客户端android中制作私有图像的ImageGallery

    我正在尝试在 Android 应用程序中创建 S3 Bucket 的 imageGallery 我的图像是私人的 所以我不会为每个图像提供任何特定的链接 对于此类私人图像 亚马逊有一个链接生成器 s3Client generatePresi
  • 在旧 Android 版本上使用 actionBarSherlock 的 searchView 的本机外观和感觉

    我注意到没有可行的解决方案显示如何使用操作栏在 listView 项目上使用过滤器 该解决方案适用于较旧的 Android 版本 如 2 3 x 我找到的唯一示例是片段示例的文件 LoaderCursorSupport java 但是 它仅
  • 从 TimerTask 的 run 方法更新 TextView 时出错

    我正在尝试测试 UI 和 Timer 类的可能性 所以我尝试了以下练习 TestTimerActivity java package com tvt TestTimer import android app Activity import
  • 为什么Python的“sorted()”比“copy,then.sort()”慢

    这是我运行的代码 import timeit print timeit Timer a sorted x x 2 bla 4 boo 3 4 1 2 0 1 4 3 2 1 0 0 timeit number 1000 print time
  • 使用应用程序上下文滑动图像加载

    我在我的 Android 应用程序中使用 glide 进行图像加载 为了避免任何崩溃 我正在使用应用程序上下文加载图像 这对应用程序和内存的性能有何影响 这对应用程序和内存的性能有何影响 Glide提供了这么多 with 方法是有原因的 它
  • 在 CustomAdapters 中使用条件 if(view==null)

    我正在为 ListView 编写一个自定义适配器 它扩展了 BaseAdapter 并在此方法中 Override public View getView int position View convertView ViewGroup pa
  • Android:由于 Web 服务 Http 请求,活动显示时间过长

    我的一项活动是在启动应用程序时向 Web 服务发出 http 请求以获取一些天气数据 由于 Web 服务请求 活动需要 3 4 秒才能显示的问题 在实际设备上测试 我知道我没有以正确的方式这样做 我所做的就是在 onCreate 方法上 我
  • Unity 2018.3 android dex合并问题

    在您决定将这篇文章视为 重复 而不阅读它之前 请了解我已经查看了大量与此主题相关的帖子 但我找不到适合我的实例的解决方案 包括 StackOverflow 建议的所有解决方案 大多数帖子都是针对 Android Studio 而不是 Uni
  • Recycler查看可见项目的数量

    我正在我的应用程序中创建一个水平 RecyclerView 它必须一次在屏幕上显示 2 个图像 因此每个图像的宽度必须为屏幕的 50 目前它工作正常 但每个项目都会占用屏幕的所有宽度 这是我的代码 mRecyclerView Recycle
  • 呼叫转移

    我想将所有拨打我号码的呼叫转接至新的预定义号码 自动地 可以转接来电吗 也许至少对于 Froyo 来说是可能的 我找到了名为 Easy Call Forwarding 的应用程序 http www appstorehq com easyca
  • Firebase 实时数据库 .info/connected 本应为 True 时为 False

    我有一个 Android 服务 它的调用地址为onCreate FirebaseDatabase database FirebaseDatabase getInstance database getReference info connec
  • VideoView中的seekTo

    我在寻找视频时遇到问题 我的应用程序应该从上次停止的位置恢复视频 所以我这样做 videoView seekTo bookmark videoView start 然而 当它播放时 我听到视频开头的声音大约 1 2 秒 只有在该视频寻找到正
  • 返回 RxJava 的 Completable 的方法的命名约定

    我有一个带有视图类的 Android 应用程序 Fragment Activity 观察其ViewModel The ViewModel公开方法 例如getUserName返回Observable
  • 膨胀类 android.support.v7.internal.widget.NativeActionModeAwareLayout 时出错

    如果您以前解决过这个问题 请有人帮助我 我正在尝试使用材料设计制作一些东西 以便应用程序可以运行到 API 10 的低版本 我的代码中没有任何错误 但我不断收到此错误 Android 日志猫 06 01 05 05 37 414 E And
  • 网页优化:为什么组合文件速度更快?

    我读过 将所有 css 文件合并为一个大文件 或将所有脚本文件合并为一个脚本文件 可以减少 HTTP 请求的数量 从而加快下载速度 但我不明白这一点 我认为如果你有多个文件 最多有一个限制 我相信在现代浏览器上是 10 个 浏览器会并行下载
  • Android:如何实现“分布式控制”

    对于与 Android 开发者论坛的交叉发帖表示歉意 那里没有收到任何答复 我有一个有趣的设计挑战 我有一个前端 Activity 和一个后端 用本机 C C 编写 代码 后端是一个复杂的对象 它部分控制 应用程序流程一旦启动就在它自己的线
  • 使用本机短信编辑器发送短信后如何返回意图

    我正在使用下面的代码使用本机短信编辑器发送短信 Intent intent new Intent Intent ACTION VIEW intent putExtra address 1234567890 intent putExtra s
  • 按钮的大小取决于屏幕分辨率

    I have LinearLayout有 6 个按钮 在 4 7 英寸大小的分辨率下 按钮几乎是完美的 但在分辨率较高的设备上 它们不会占据整个屏幕 而在分辨率较低的设备上 并非所有按钮都可见 您能否解释一下如何使按钮在不同屏幕分辨率的设备
  • 使用 OnContextItemSelected 从 ListView 项目中检索文本

    我有一个带有 经典 上下文菜单的 ListView 其中包含删除和类似选项 由于我要从 SharedPreferences 对象中删除 因此我需要检索键 即设置到 ListView 项目中的文本 我尝试过以下代码 Override publ
  • 只有创建视图层次结构的原始线程才能触摸其视图。在安卓上[重复]

    这个问题在这里已经有答案了 我只是一个初学者 所以请原谅我问一个可能愚蠢的问题 我不明白只有创建视图层次结构的原始线程才能触摸其视图的含义 请有人告诉我为什么会发生此错误以及如何解决此问题 ThankYou 这是我的班级 public cl

随机推荐

  • 在路线中使用航点 - Google 地图路线服务

    如果我将航点添加到我的谷歌地图 功能 calcRoute 不起作用 如何正确设置航点 Thanks
  • 匹配字符串中的子集

    假设我有 String x ab String y xypa 如果我想看看 y 中是否存在 x 的任何子集 最快的方法是什么 循环很耗时 在上面的例子中 x 的子集是 a 它可以在 y 中找到 答案确实取决于很多因素 如果你只是想找到any
  • 无法在asp.net core中使用ajax将json发布到控制器

    我有以下代码 控制器动作方法 HttpPost public async Task
  • 有没有一种方法可以比较阿拉伯字符而不考虑它们的首/中/尾形式?

    在拉丁字母中 字母有大写和小写两种形式 在Python中 如果你想比较两个字符串而不考虑它们的大小写 你可以使用以下命令将它们转换为相同的大小写 string upper or string lower 在阿拉伯文字中 字母可以有词首 词尾
  • 聚合 MongoDB 中的不同值

    我有一个 mongodb 数据库 有 18625 个集合 它有以下键 id ObjectId 5aab14d2fc08b46adb79d99c game id NumberInt 4 score phrase Great title NHL
  • 长时间尝试语句

    将函数的大部分代码放在一个函数中是否有任何缺点 try statement 如果我做某事需要try statement 我通常最终会在 try 语句中为该函数做很多工作 因为我通常在那里声明我的变量 并且如果我这样做 就不能在该范围之外使用
  • 从 UART 接收的数据中获取子字符串并放入 LCD

    发布为基于的新问题this one https stackoverflow com questions 59559083 is there string in c OP 最初对已回滚的问题进行了巨大更改 因为用户表示他们无法自己提出问题 A
  • Python 与 Ruby 进行元编程 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在导入模块期间访问 PrivateData

    我想加载 config xml 文件的内容并将其存储在 PrivateData当我的模块加载时 这是我的 PSD1 中的定义行 Private data to pass to the module specified in ModuleTo
  • 使用 WPF shell 集成库最大化时窗口超出屏幕

    我正在使用WPF Shell 集成库 http code msdn microsoft com WPFShell创建我的 wpf 应用程序的自定义 chrome 一切都很好 但是当最大化应用程序时 屏幕外会出现 6 或 7 个像素 这是我正
  • 是否有 link.exe 的替代链接器?

    我正在开发一个代理 DLL 并希望导出其中包含 字符的符号 然而 这个字符似乎对 link exe 有特殊含义 我猜实际上是对 lib exe 给定一个 C 文件 extern C void f I can创建一个导出的 DLLf as f
  • 复杂表达式中的后缀增量运算符究竟何时计算?

    说我有这样的表情 short v p i 0xFF lt lt 4 p i 0xF0000000 gt gt 28 with p是一个指向动态分配的 32 位整数数组的指针 When exactly will i会增加吗 我注意到上面的代码
  • 克隆 JavaScript 事件对象

    有人知道如何对本机 javascript 事件对象进行深度复制 克隆吗 我知道我可以创建一个新的事件对象并手动设置适当的属性以匹配原始事件 但如果有一种方法可以克隆 那就容易多了 上面的代码不会正确复制任何 getter setter 尝试
  • 如何在c中模拟闭包

    有简单的方法吗 这是一个相当广泛的问题 从根本上讲 闭包是一个指令指针以及一些以正确方式执行指令所需的存储上下文 您当然可以在 C 中使用结构体和函数指针将类似的东西组合在一起 假设您表达一个接受两个 int 并返回 void 作为结构的闭
  • 未找到“默认”的 Docker 端点

    我确实克隆了一个项目 并且在第一步中 当我尝试启动容器时 我在项目根目录中运行了 windows CMD 然后输入以下命令 docker compose up build 并向我显示此消息 找不到 默认 的 docker 端点 如果有人帮助
  • 使用 df.to_csv() 的编码错误

    我正在尝试将 Twits 中的信息 屏幕名称 创建位置和文本 保存到 pandas DataFrame 中 然后将 DataFrame 保存为 csv 文件 我收到编码错误 import tweepy from tweepy import
  • pandas 数据帧上的矢量化查找

    我有两个 DataFrame df1是一个表 我需要使用从 df2 中的多个列检索的索引 列对来提取值 我看到有一个函数get value当给定索引和列值时 它可以完美地工作 但是当尝试向量化此函数以创建新列时 我失败了 df1 pd Da
  • 如何将我的 Android 应用程序 Google 地图半径圆替换为如图所示的蓝色半透明圆?

    如何将我的 Android 应用程序 Google 地图半径圆替换为蓝色半透明圆 如图所示 还有带有蓝色圆的蓝色标记 我可以使圆圈具有特定的轮廓并填充 但它看起来并不像下图所示的那么好 我怎么做 到目前为止我的代码也在下面 Code pri
  • VS 2012 发布:找不到有效的 AspnetMergePath

    我刚刚安装了 Visual Studio 2012 的 Update 2 它引入了一个新的 发布 对话框 我试图让它做以前做的事情 在发布之前预编译网站 但我遇到了错误 Can t find the valid AspnetMergePat
  • Android M startActivity电池优化

    我正在开发一个应用程序 如果用户靠近某个地方 它应该提醒用户 当然 如果手机处于空闲状态 也必须这样做 现在有了 DOZE 我明白我必须将我的应用程序列入白名单 并且为了做到这一点 我看到我可以通过操作请求启动一个意图 这要归功于 Budd