问题标签 [android-powermanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
404 浏览

android - Android 电源按钮在应用程序运行时覆盖和禁用

嗨,我需要在应用程序运行时让设备屏幕保持心情舒畅。禁用电源按钮功能以关闭屏幕。我试过以下代码

和唤醒锁

提前致谢

0 投票
1 回答
477 浏览

android - 关闭屏幕时如何保持CPU运行?

Fragment中有一个耗时的任务(线程)。它工作正常。但是,当我关闭屏幕时,我看到 CPU 无法正常工作,因此任务无法正常工作。

PowerManager在 Activity 中使用过,但在 Fragment 中也没有使用过。还添加<uses-permission android:name="android.permission.WAKE_LOCK" />

我见过CPU 在此处输入图像描述

0 投票
1 回答
5311 浏览

android - Android PowerManager isInteractive() vs isScreenOn() 错误?

我正在尝试使用以下代码确定屏幕是否打开:

我收到了来自现场的报告,称这正在被记录:

谁能帮我理解这是怎么发生的?isScreenOn() 方法应该对 API 19 有效,而 isInteractive() 应该对 API 20 及更高版本有效。我在这里做错了吗?

0 投票
0 回答
344 浏览

android - 确定 Android 版本 15 上的屏幕是打开还是关闭 - 存在

我正在编写一个 API 级别为 15 及以上的 Android 设备将使用的 SDK。我目前的目标是 sdk 版本 22。我想要完成的是确定屏幕是打开还是关闭。有时我会在应用程序处于前台或后台时执行此操作,有时我会在应用程序关闭时使用警报执行此操作。我想要做的是询问框架屏幕是打开还是关闭,但对于 <= 19 的 android 版本来说,这似乎是不可能的。

看起来 sdk 版本 19 允许设备使用 PowerManager.isScreenOn() 来确定屏幕的状态,但是当版本 20 出现时,该方法已被弃用,现在您可以调用 PowerManager.isInteractive() 但这仅适用于设备运行 API 20 及更高版本。如果您尝试使用运行 API 19 或更低版本的设备调用 isScreenOn(),则该调用实际上只是包装了 isInteractive(),您最终会得到一个在日志中找不到的方法,并且实际上并没有得到您想要的数据。

因此,如果我总是想知道设备 <= 19 的屏幕当前状态,一种解决方法是启动一个基本上总是运行的后台服务,并注册一个寻找 ACTION_SCREEN_ON 和 ACTION_SCREEN_OFF 意图的广播接收器. 这显然是不可取的,因为那时我必须有一个不推荐的始终在线服务。

我想另一种解决方法是在我构建时再次编译 sdk 19,这将使 isScreenOn() 调用可用(并使 isInteractive() 调用不可用)。这可能是一种可能性,但似乎是一个糟糕的解决方法,因为我基本上会被困在这个 sdk 级别,直到框架向后移植这个功能或者 sdks 15 - 19 被足够少的用户使用,不再支持它们。

我对情况的评估是否正确?

任何人都可以评论提出的两种解决方法或建议替代方案吗?

0 投票
0 回答
200 浏览

android - 插入 USB 电源适配器后,Android 设备启动进入操作系统

当我插入 USB 电源适配器时,我想让我的 Android 设备启动到操作系统。SO上提供了涉及编辑“/system/bin/lpm”的解决方案,如下所示。

文件名的变化被标注为“../playlpm”,以及“../ipod”。然而,这些文件都没有出现在最近的 CyanogenMod 版本中。

我检查了 /system/bin/ 中的所有文件,但没有发现特定于 lpm(低功耗管理器)的文件。因此,以前发布的解决此问题的方法均不适用。

关于解决这种情况的建议?TIA

0 投票
0 回答
44 浏览

android - 获得一个“网络”锁,在使用时锁定 wifi,但在使用 3G 时不锁定?

目前我的代码中有这个:

但是我的应用程序使用“任何”类型的网络。当没有 Wifi 连接时,它会自动使用 3G 数据。有没有办法以某种方式优化此代码,使其仅在实际使用时锁定 WiFi?我能想到的唯一方法是将上面的代码更改为:

并创建一些 NetworkStateReceiver 来监听 WifiManager.NETWORK_STATE_CHANGED_ACTION 和/或 ConnectivityManager.CONNECTIVITY_ACTION 广播并以某种方式获取/释放锁(并且可能将锁保存到我的应用程序的静态成员?)

有推荐的方法吗?

0 投票
0 回答
338 浏览

android - 检测用户当前是否在没有 ACTION_USER_PRESENT 和 ACTION_SCREEN_OFF 接收器的情况下

有没有办法在不监听ACTION_USER_PRESENT -event 及其对应的ACTION_SCREEN_OFF的情况下检测用户当前是否存在?

我不喜欢在 SharedPrefs 中缓存最后一个事件,因为我无法使用在 manifest 中注册的接收器来监听 ACTION_SCREEN_OFF 。我想避免实现一个一直运行的服务来获取 ACTION_SCREEN_OFF 事件。因为如果我的应用程序崩溃,该服务将不再运行。

PowerManager#isScreenOn()PowerManager#isInteractive()不是一个选项,因为如果用户与锁定屏幕交互,它们会返回 true。

必须支持 API 级别 >=17。

0 投票
1 回答
887 浏览

android - Android 无法从片段启动传感器服务类

我有一个带有导航抽屉的主要活动,可以将不同的页面作为片段显示出来。在其中一个片段中有一个按钮,单击该按钮将启动传感器服务并将传感器信息存储到后台数据库中,即使屏幕关闭(唤醒锁定)也是如此。

但是,当单击按钮时,onStartCommand似乎没有调用该方法(它没有将任何内容记录到 logcat)

我不确定为什么服务没有启动。我已经看过许多关于此的教程/问题,但它们都使用活动,但在我的情况下,我试图从 MainActivity 中的片段启动传感器服务类。我的很多困惑源于混合片段和活动,以及如何从片段正确启动服务

这是带有按钮的片段:

这是SensorService应该在按钮单击时运行的类:

0 投票
2 回答
8320 浏览

android - 如何避免我的应用在三星设备上进入优化

智能管理器杀死一个 3 天未使用的应用程序。我的应用程序做了一些后台工作,因此用户不需要打开它。

我该怎么做才能让它不进入应用优化模式(Android OS 5.0.2、5.1.1)

0 投票
1 回答
10001 浏览

android - 即使在设备被锁定后继续在 android 中下载

即使在设备被锁定(按下电源按钮)后如何继续下载任务。我尝试从 Play 商店安装一个应用程序,在下载过程中我锁定了设备,但它仍然继续下载而没有任何中断,并且在锁屏上可见,如下面的屏幕截图所示。我们如何以编程方式实现这一目标?

在此处输入图像描述