问题标签 [android-wake-lock]

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 投票
3 回答
7777 浏览

android - Android - 唤醒锁未正确获取,应用程序需要保持待机运行

在我的应用程序中,在主要活动的 onCreate() 方法中,我创建了一个唤醒锁,以便在手机处于待机状态/屏幕关闭时 CPU 将继续运行。

同样在 onCreate 方法中,我打算创建一个使用加速度计的服务。此服务需要在应用程序打开并监控加速度计值时持续运行(我知道这对电池不利,但我需要它来做到这一点)。这是我目前的代码,服务启动正常。

我在清单中设置了以下权限 -

我用不同的锁试过这个 - 暗屏和全亮度也无济于事。我在 logcat 上的输出在这里 -

我见过有人说部分唤醒锁不能像他们应该做的那样工作,例如这个链接Google 待机错误页面,但这是去年发布并关闭的,所以我不知道是不是这样,有人可以帮忙吗?关于最后一点,我也有 HTC Desire,谢谢。

0 投票
3 回答
16670 浏览

android - Android - 如何将手机从沉睡中唤醒以拍照?

我想在几个小时内定期从 Android 设备的相机中拍照,以创建延时视频效果。

我设置了一个带有 AlarmManager.RTC_WAKEUP 标志的警报管理器,以每隔几分钟启动一次服务。

该服务持有一个部分唤醒锁,做一些工作,然后通过启动一个活动的警报管理器调用一个广播接收器。

活动被创建(或恢复),打开它自己的唤醒锁,并设置相机预览表面。一旦设置了表面,就会调用 SurfaceHolder 侦听器的 surfaceChanged() 方法,最终拍摄一张照片。

如果设备处于唤醒状态,则一切都按预期完美运行。但是如果设备处于睡眠状态,一旦 Activity 的 onResume() 方法完成,Activity 就会立即暂停。相机的预览表面永远不会完成初始化,也不会拍摄任何照片。

所以我的问题是:

  1. 有没有办法以编程方式唤醒手机?我什至尝试使用:

    /li>

但是,如果它睡着了,这不会唤醒手机。

  1. 有什么方法可以在不使用预览表面视图的情况下拍照?

  2. 有没有不依赖异步回调的拍照方式?可以把所有代码都放在Activities onResume()方法中拍照吗?

  3. 有没有办法让 Activity 的 onResume() 方法运行足够长的时间,以便相机的预览有足够的时间来初始化和调用所有侦听器?

我正确使用了唤醒锁,并且我在清单文件中正确设置了所有权限。我的活动没有保持足够长的时间让异步侦听器正常工作。

为了使问题更加复杂,我正在尝试保持所有 Android 1.6 兼容,因为这是我可以访问的唯一测试设备。

这是令人沮丧的事情!

0 投票
2 回答
4675 浏览

android - 如何在没有 SyncAdapter 的情况下在 Android 上实现帐户

我正在使用内置帐户系统(使用 AccountManager API)为 Android 应用程序实现登录系统。

在 Android 2.2+ 上一切都很好,但在 Android 2.1 上,不包括 SyncAdapter 会导致帐户设置屏幕重新启动(请参阅http://code.google.com/p/android/issues/detail?id=5009AccountManager没有 SyncAdapter?

为了解决这个问题,我实现了一个存根 SyncAdapter,它只是null从中返回IBinder onBind(Intent intent),并将相关的东西添加到清单中。这解决了 Android 2.1 上的重启问题。

但是它引入了另一个问题:在添加帐户后,Android 系统将在稍后的某个时间启动帐户同步。虽然没有发生错误(实际上我的 SyncAdapter 什么都不做,除非通过返回,否则无法导致错误null),同步图标仍停留在顶部的通知栏中。这会导致 Android 同步系统保持永久唤醒锁,防止设备进入睡眠状态。

该帐户未在帐户设置屏幕(在“数据和同步”标题下)列出任何可同步组件,并且始终在帐户列表中显示同步状态的“同步已关闭”(即使同步图标在通知栏)。禁用帐户同步并不能消除问题。删除帐户可以解决问题。

我的猜测是我不应该返回 null。我应该返回 ThreadedSyncAdapter 的基本实现吗?非常感谢任何帮助获得没有关联同步的帐户系统在 2.1 和 2.2+ 上正常工作的帮助。

0 投票
1 回答
4533 浏览

android - 哪些事件可以唤醒处于睡眠状态的 Android 设备?

我正在编写一个 Android 客户端应用程序,它使用 HTTP 长轮询(彗星)不断接收来自服务器的推送通知。

我不想一直保留 WakeLock,因为它会耗尽电池电量,但我需要确保设备即使在睡眠模式下也能收到通知。

我发现了这个问题:

Android:Android 设备上的睡眠阶段/级别?

其中“CommonsWare”提到非 Wifi 套接字上的传入数据包将唤醒设备。

所以我的解决方案如下所示:

但是在收到通知和要求唤醒锁之间有一点时间窗口,所以我的问题是,设备将保持这种唤醒状态多久?设备是否可以在此时间窗口内重新进入睡眠状态?

0 投票
2 回答
1696 浏览

android - 每 10 秒获取一次 PARTIAL_WAKELOCK

以 10 秒为间隔获取部分唤醒锁的应用程序是否存在任何问题。我的用例是能够通过设备加速度计持续监控用户的运动。基本上,我有一个服务,它每 10 秒被警报调用一次。

该服务获取唤醒锁,从加速度计获取一些读数以确定当前运动状态,然后释放唤醒锁。服务的总生命周期约为 4 秒。

我的理解是,这会导致设备每分钟保持清醒约 24 秒。虽然并不理想,但我希望这仍然比在我的应用程序的整个生命周期中保持一个恒定的唤醒锁更好。

另一方面,在如此短的时间内获取和释放唤醒锁的行为是否可能对电池寿命同样不利?

任何输入表示赞赏。

0 投票
1 回答
959 浏览

android - 我需要在 onReceive 方法中为 CONNECTIVITY_ACTION 广播保留 PARTIAL_WAKE_LOCK 吗?

我有一个使用 ConnectivityManager.CONNECTIVITY_ACTION 意图过滤器监听网络连接变化的服务。我应该在我的 onReceive 方法开始时获取部分 cpu 锁来处理它吗?

0 投票
3 回答
5499 浏览

android - 广播接收器、服务和唤醒锁

我在广播接收器中接收到一个意图,然后我开始服务做更多的工作。现在如果设备处于睡眠状态并且发生这种情况怎么办,我是否必须获得唤醒锁(AlarmManger?),我为什么需要它?如果设备在没有唤醒锁的情况下进入睡眠状态,我的服务会停止运行吗?

0 投票
3 回答
6503 浏览

android - 用于唤醒锁定屏幕的 Android 服务侦听器

大家好,

我正在开发一个紧急呼叫应用程序。我想要的是当有人使用这个特定代码时,手机会解锁,然后只有我的应用程序会运行。我想我需要一个接收器,只是想知道我是否必须为我的应用程序创建自己的主屏幕和锁定屏幕。请对此有任何想法???

提前谢谢了 :)

0 投票
2 回答
1692 浏览

android - 三星 Galaxy Tab 中的唤醒锁

我正在开发一个需要在后台发送和接收数据包的应用程序。但我发现,当屏幕关闭时,cpu 和网络也被禁用。所以我在 Android Developers 上发现,如果屏幕关闭,我应该使用唤醒锁和 wifi 锁来让 CPU 正常工作。此解决方案适用于 LG Optimus One 等其他设备,但不适用于三星 Galaxy Tab。使用此设备,当屏幕关闭时,我无法再接收数据包(UDP),当我按下电源按钮重新启用屏幕时,我神奇地重新启动以接收数据包。在我的代码中,我调用:

然后

我认为这是三星的错误,但我不确定,如果有人能给我一些提示,我将不胜感激。

PS我需要一些编程帮助......我已经知道如果我修改一些手动设置以避免关闭屏幕,这将起作用。但我正在开发一个应用程序,我需要代码!!

0 投票
3 回答
10165 浏览

android - 通过触摸而不是电源按钮激活 Android

我们有一个平板电脑应用程序,我们希望在一段时间后屏幕超时,但希望用户通过触摸屏幕而不是设备侧面的“电源”按钮来重新启用它。

对此最好的方法(电池性能)是什么?

  1. 使用部分唤醒锁定(屏幕会有反应吗?)
  2. 以某种方式禁用屏幕,但保持一切(包括触摸响应)正常工作?
  3. 其他?

对此有何建议?