您好我正在尝试为应用程序实现唤醒锁定.
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
Run Code Online (Sandbox Code Playgroud)
在定义PowerManager上面代码中显示的内容时似乎强制关闭.什么出错了?
我正在编写一个Android客户端应用程序,它使用HTTP长轮询(Comet)继续从服务器接收推送通知.
我不想总是保留WakeLock,因为它会耗尽电池,但我需要确保设备即使在睡眠模式下也能收到通知.
我发现了这个问题:
其中"CommonsWare"提到非Wifi套接字上的传入数据包将唤醒设备.
所以我的解决方案如下所示:
Client ------------------------- Server
---- Request----->
release WakeLock (Allow device to sleep)
<----Notification-- (Hopes it can wake up the device)
require WakeLock
process the notification
---- Request----->
release WakeLock
....
Run Code Online (Sandbox Code Playgroud)
但是在接收通知和要求唤醒锁之间有一点时间窗口,所以我的问题是,设备保持这种清醒状态多长时间?在此时间窗口内,设备是否可以重新进入睡眠状态?
我想构建一个Android应用,该应用需要通过3G远程启动(在通过套接字收到推送通知之后)。
我做了一些研究,似乎一旦屏幕关闭它就变得非常复杂,也是因为Android杀死了空闲的套接字。
是否有一个示例项目演示了如何可靠地实现这一目标?我找到了WakefulIntentService库,但它没有考虑到套接字需要保持活动状态。
一种替代方法是定期轮询某个URL以获取唤醒信号,但这会在设备检测到需要启动应用程序之前引入较大的延迟,具体取决于轮询间隔。
即时通讯接收广播接收器的意图然后我开始服务做更多的工作.现在如果设备处于睡眠状态并且发生这种情况,我必须得到Wakelock(AlarmManger?),为什么我需要它?如果设备在没有获取唤醒锁的情况下进入睡眠状态,我的服务是否会停止运行
即使手机处于锁定模式,我如何开始我的活动,以便我可以访问我的应用程序?
我想首先使用闹铃ringAlarm()然后转到另一个将显示alertdialog以停止闹钟的活动.
如果手机处于活动状态,它可以正常工作,但是当手机被锁定时,它只会持续报警,当我解锁手机时,停止报警按钮不会激活.请帮我.提前感谢您的帮助.
这是我的代码:
public class EAlarmReceiver extends BroadcastReceiver {
public static String sender;
public static String sms = "";
public static Ringtone r;
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Bundle bundle = intent.getExtras();
Object[] pdusObj = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdusObj.length];
for (int i = 0; i<pdusObj.length; i++)
{
messages[i] = SmsMessage.createFromPdu ((byte[])
pdusObj[i]);
sender = messages[i].getOriginatingAddress();
sms = messages[i].getMessageBody();//save sms to string
}
for (SmsMessage msg …Run Code Online (Sandbox Code Playgroud) Envrionment:Eclipse
语言:Java(Android)
我有一个问题,直到我在设备上测试我的应用程序之前我才意识到这一点.我一直以为即使手机正在睡觉,服务也会在后台持续运行.我发现事实并非如此,所以,我的问题是,一旦你唤醒你的设备,服务会再次启动吗?如果没有,我将如何使服务再次启动.
我能每隔5分钟左右唤醒一次电话,只是为了运行我的服务,这将持续30秒到1分钟.然后让手机重新入睡?
提前致谢.
编辑:我是Android编程的新手,如果有人告诉我如何使用WakefulIntentService,我将非常感激.我有一项服务,每隔一段时间都在搜索用户的GPS位置,当手机进入睡眠状态时,我希望我的服务仍然能够找到他们的位置.我将如何使用WakefulIntentService?我能在这种情况下使用它吗?
谢谢.
在这里我提到了唤醒屏幕的代码.我希望代码是监听仍然应用程序关闭和CPU清除,用户可以点击电源按钮,当我的屏幕解锁时,应用程序是同步像whatsapp.
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "whatever");
super.onCreate(savedInstanceState);
wl.acquire();
Run Code Online (Sandbox Code Playgroud) 在不同的来源中,我读到前台服务需要唤醒锁才能在设备进入睡眠状态后保持活动状态。但是,当我通过启动前台服务并在设备拔出插头时关闭屏幕(在模拟器上和真正的三星设备上)来测试它时,前台服务继续运行。
前台服务是否需要(部分)唤醒锁才能在屏幕关闭后保持活动状态?
android android-service android-wake-lock wakelock foreground-service
题
我想知道我们是否需要获取WakeLock还是service.startForeground()命令对我们有用吗?我没有在文档中找到任何东西。
目标
我们想要删除不必要的东西,因为我们希望尽快开始捕获传感器数据并且服务可能频繁重启,这可能会减慢服务启动的速度。
语境
我们正在开发一个Android库,以捕获高达200 Hz的传感器数据长达几个小时(研究环境)。现在,我们获取一个WakeLock并以ForegroundService的身份启动捕获服务,以确保在不使用设备时不停止捕获。