Articles of android wake lock

Android,在设备处于睡眠模式时获得强度信号(PhoneStateListener)

我有问题,经过一些搜索,我没有find任何积极的解决方案。 经过研究,我认为我的问题没有实施,但这个问题可能是我的最后一次机会。 我需要得到什么? 有应用程序获取有关移动网络强度信号的信息。 我通过PhoneStateListener 。 当然它工作得很好但是当我的设备进入睡眠模式时,监听器不起作用: https://code.google.com/p/android/issues/detail?id=10931 https://code.google.com/p/android/issues/detail?id=7592 如果设备因超时而关闭, WakeLock仅解决问题。 如果我按下硬电源按钮,我的设备也会进入睡眠模式。 我们无法覆盖电源按钮操作。 我的目标是在我的设备启用时始终获得强度信号。 什么模式都没关系。 它应该一直收集数据。 题: 有什么想法吗? 怎么实现呢? 有没有办法做到这一点,或者可能有一些黑客? 欢迎所有解决方案。 如果您有一些有用的经验,请分享一下。 感谢大家的帮助!!! 我希望,这个主题将获得有关此问题的完整信息。

在Android 1.5服务中使用唤醒锁

您好我正在尝试使用服务来控制唤醒锁,以便在我的应用程序运行时永久保持屏幕不亮。 我创建了唤醒锁并在onCreate()中激活它并在onDestroy()中释放它但是我得到错误“wl无法解析”。 谁能解释我怎么能克服这个? 代码如下: public class WakeLockService extends Service { @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, “My Tag”); wl.acquire(); } @Override public void onDestroy() { wl.release(); } }

谷歌分析是否添加唤醒锁权限?

所以我只是将谷歌分析添加到我的应用程序的活动中。 将新的.apk上传到Play商店时,它告诉我该应用现在还需要1个权限:WAKE_LOCK。 现在我100%确定此权限不在我的清单中,因此必须由Google Analytics添加。 有没有办法禁用它? 或者这会破坏谷歌分析? 提前致谢!

检查是否通过用户交互或屏幕调暗来调用onStop

我有一个媒体播放器,只要用户关闭应用程序就停止播放,可以通过按主页按钮,使用后退按钮或只是打开另一个应用程序。 为了得到这种行为,我在我的主要活动中添加了一个onStop() ,它告诉我的MediaPlayer (在服务中)停止播放音乐。 但是,我希望音乐在屏幕变暗时继续播放,无论是使用电源按钮关闭屏幕,还是仅通过屏幕自动调光。 现在,当屏幕变暗时,播放器也会停止播放,这意味着onStop()方法也会被调用。 如何检查onStop()是否被屏幕调用调用? 我已经将一个PARTIAL_WAKELOCK应用到了我的MediaPlayer对象,据我所知,该对象应该可以让播放器在屏幕关闭后继续运行。 我是否还需要在主要活动中添加部分唤醒锁? 刚刚将PARTIAL_WAKELOCK应用于我的主要活动以及媒体播放器。 此时,屏幕不再自动关闭,当用户按下电源按钮时,音乐仍然停止。 显然,这不符合我的想法。 有没有办法实现我正在寻找的行为?

Android – 唤醒锁无法正常获取,应用程序需要继续在待机状态下运行

在我的应用程序中,在主要活动的onCreate()方法中,我正在创建唤醒锁定,以便在手机进入待机/屏幕关闭时CPU将继续运行。 同样在onCreate方法中,我有意创建一个使用加速度计的服务。 当应用程序打开并监控加速度计值时,此服务需要持续运行(我知道这对电池不利,但我需要这样做)。 这是我目前的代码,服务开始很好。 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, “Howaya”); wl.acquire(); if (appStart == true) { Intent AccelService = new Intent(this, Accelerometer.class); AccelService.putExtra(“unreg”, false); startService(AccelService); } appStart = false; } 我的清单中设置了以下权限 – 我尝试过不同的锁 – 昏暗的屏幕和全亮度也无济于事。 我在logcat上的输出在这里 – F/PowerManager(15628): android.util.Log$TerribleFailure: WakeLock finalized while still held: […]

我的华为杀了我的wakelock安卓应用程序

我尝试开发使用手机加速度计的Android应用程序。 除了华为的手机(在P9上测试)之外,它无处不在。 我选中了“继续使用黑屏运行”选项并使用电池保护程序保护应用程序(电池选项)。 我看不到解决方案,所以我问你:-)这是我的活动: public class MainActivity extends AppCompatActivity { private static final String TAG = “MainActivity”; private MyService mService; private boolean mIsRunning; private MyService.ICallback mCallback = new MyService.ICallback() { public void changed() { Log.i(TAG, “CHANGED”); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void onResume() { super.onResume(); if(!mIsRunning) { […]

Android:前景服务与wakeLock

我对Android比较陌生,所以我所要求的看起来很明显(虽然我已经阅读了所有类似标题的问题,并且已经进行了广泛的搜索)。 我需要长时间连续监控加速度计。 提出了两种方法: 1)获取部分唤醒锁定,该锁定在监视加速器的整个时间内保持; 和 2)在前台服务中监控加速度计。 第一种方法似乎使用了大量的电池寿命。 第二种方法应该导致服务很少被杀死,但我不确定“很少”意味着什么。 应该使用哪种方法,还有哪些方法我应该考虑?

WiFi锁不起作用,如何防止wifi省电?

我做了一个应用程序,将手机变成网络摄像头,并使用手机连接将图像发送到互联网网络空间。 我正在使用广告活动将闹钟管理器设置为每隔5或15分钟执行一次服务。 要执行服务的整个执行,我会执行唤醒锁定,但在服务完成时会丢失。 所有这一切都适用于移动连接,但不同于wifi。 我已经设置了wifi选项的政策“永远”为wifi睡眠。 但过了一段时间(并不总是一样),手机似乎进入省电模式:wifi图标尚未处于状态栏,但手机无法连接。 即使是我使用浏览器…所以我必须断开连接并手动重新连接。 logcat中的消息: notify conn break (IOEx), close connection即使电话插上电源!!! 为什么? (1) 使用启动服务的活动形成的另一个应用程序进行实验,该服务始终使用唤醒锁定运行。 所以我添加了wifi锁以确保连接,但这种方法有时会运行,而其他一些则没有。 总是一样的notify conn break (IOEx), close connection为什么? (2) 最后一个实验来自第一个应用程序(报警管理器),并确保wifi不进入睡眠/省电模式(女巫?)我已经在执行代码后将手机转为飞行模式当循环开始时我将其关闭(连接开启)。 这项工作可以使用两天,但有时它只能工作(每隔一小时或两小时,而不是每5分钟一次,或者有时一整天都不工作,然后无任何理由重启……)。 那么,为什么飞机模式有时不会重新建立先前的无线连接? (还有一些时候呢?)(3) 这款手机是原装2.2的三星Galaxy ACE,总是可以充电。

启动服务时AlarmManager的唤醒锁定

Android的AlarmManager Javadoc声明 When an alarm goes off, the Intent that had been registered for it is broadcast by the system, Android提供的API演示中有一个AlarmService (包com.example.android.apis.app),它演示了正在使用的AlarmService。 在其中我们有以下内容(为清晰起见编辑): PendingIntent mAlarmSender = PendingIntent.getService(AlarmService.this, 0, new Intent(AlarmService.this, AlarmService_Service.class), 0); AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 30*1000, mAlarmSender); 所以在这个例子中它没有PendingIntent mAlarmSender = PendingIntent.getBroadcast(…); 相反,它会执行Javadoc永远不会提到的getService 。 我问这个的原因是因为CPU唤醒锁的影响。 Javadoc表示,一旦广播接收器的onReceive()返回,AlarmManger的唤醒锁将被释放。 我想知道如果您使用示例中的警报,唤醒锁定的含义是什么? Javadoc似乎没有解决这个问题。 如果有什么似乎暗示您在设置警报时必须使用广播技术。

在Android 5.1中调度每秒的警报

我想在我的应用程序中每秒运行一次报警服务。它在5.1版本以下工作正常。 但它不会在5.1设备中触发。 我正在使用commonsware wakeful intent service.logcat消息说“ 可疑短间隔1000毫秒;扩展到60秒 ”。 如何在5.1中每秒轮询一次? 任何人都可以建议我如何实现这一目标? 更多解释: 我的用例是我需要每隔30分钟做一些操作。 AFAIK为此使用报警管理器是有效的方法,但在这里 1)我需要向用户显示倒计时器。 (计时器任务,倒计时器,ScheduledExecutorService对此非常有用) 2)即使应用程序在后台,我也需要每隔30分钟通知用户(通过通知)。(报警服务就足够了) 但在这里我的问题是,当应用程序处于后台时,当您从最近一次刷出应用程序时(即,应用程序进程被终止),没有任何服务或计时器,处理程序,执行程序服务将无法工作)。 在这种情况下,如何在完成30分钟后通知用户。 如果我以错误的方式思考,请指导我。 谢谢, 切塔尼亚