问题标签 [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.
android - Android 电源按钮在应用程序运行时覆盖和禁用
嗨,我需要在应用程序运行时让设备屏幕保持心情舒畅。禁用电源按钮功能以关闭屏幕。我试过以下代码
和唤醒锁
提前致谢
android - Android PowerManager isInteractive() vs isScreenOn() 错误?
我正在尝试使用以下代码确定屏幕是否打开:
我收到了来自现场的报告,称这正在被记录:
谁能帮我理解这是怎么发生的?isScreenOn() 方法应该对 API 19 有效,而 isInteractive() 应该对 API 20 及更高版本有效。我在这里做错了吗?
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 被足够少的用户使用,不再支持它们。
我对情况的评估是否正确?
任何人都可以评论提出的两种解决方法或建议替代方案吗?
android - 插入 USB 电源适配器后,Android 设备启动进入操作系统
当我插入 USB 电源适配器时,我想让我的 Android 设备启动到操作系统。SO上提供了涉及编辑“/system/bin/lpm”的解决方案,如下所示。
文件名的变化被标注为“../playlpm”,以及“../ipod”。然而,这些文件都没有出现在最近的 CyanogenMod 版本中。
我检查了 /system/bin/ 中的所有文件,但没有发现特定于 lpm(低功耗管理器)的文件。因此,以前发布的解决此问题的方法均不适用。
关于解决这种情况的建议?TIA
android - 获得一个“网络”锁,在使用时锁定 wifi,但在使用 3G 时不锁定?
目前我的代码中有这个:
但是我的应用程序使用“任何”类型的网络。当没有 Wifi 连接时,它会自动使用 3G 数据。有没有办法以某种方式优化此代码,使其仅在实际使用时锁定 WiFi?我能想到的唯一方法是将上面的代码更改为:
并创建一些 NetworkStateReceiver 来监听 WifiManager.NETWORK_STATE_CHANGED_ACTION 和/或 ConnectivityManager.CONNECTIVITY_ACTION 广播并以某种方式获取/释放锁(并且可能将锁保存到我的应用程序的静态成员?)
有推荐的方法吗?
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。
android - Android 无法从片段启动传感器服务类
我有一个带有导航抽屉的主要活动,可以将不同的页面作为片段显示出来。在其中一个片段中有一个按钮,单击该按钮将启动传感器服务并将传感器信息存储到后台数据库中,即使屏幕关闭(唤醒锁定)也是如此。
但是,当单击按钮时,onStartCommand
似乎没有调用该方法(它没有将任何内容记录到 logcat)
我不确定为什么服务没有启动。我已经看过许多关于此的教程/问题,但它们都使用活动,但在我的情况下,我试图从 MainActivity 中的片段启动传感器服务类。我的很多困惑源于混合片段和活动,以及如何从片段正确启动服务
这是带有按钮的片段:
这是SensorService
应该在按钮单击时运行的类:
android - 如何避免我的应用在三星设备上进入优化
智能管理器杀死一个 3 天未使用的应用程序。我的应用程序做了一些后台工作,因此用户不需要打开它。
我该怎么做才能让它不进入应用优化模式(Android OS 5.0.2、5.1.1)