我正在尝试测试我们的Android应用程序在操作系统进入打瞌睡模式时的行为。我正在使用运行AndroidAPI23(修订版1)的模拟器。应用程序使用类型为ELAPSED_REALTIME_WAKEUP的方法setInexactRepeating通过AlarmManager启动服务。我将闹钟设置为大约每三分钟触发一次(仅用于测试目的)。经过几次尝试(官方指南非常不清楚),我通过锁定模拟器的屏幕并运行dumpsys建议的命令成功地将模拟器置于IDLE状态。当设备处于空闲状态时,我仍然能够看到警报启动的服务。这不应该是预期的行为。我期待警报停止。这是一个错误吗?还是我遗漏了什么?
如何让我的应用程序退出androidMDOZE模式?是否有一种标准方法可以在运行时有选择地从DOZE和自动待机中包含和排除应用程序? 最佳答案 Howtoopt-outmyappfromandroidMDOZEmode?你不能通过任何已知的机制。IsthereastandardwaytoincludeandexcludeappsfromDOZEandautostandbyselectivelyatruntime?理论上,用户可以在“设置”中切换“忽略优化”选项,将应用置于不应进入应用待机模式的应用白名单中。这不会影响打瞌睡模式。引用
我正在一个Android6中测试一个应用程序,我需要通过DOZE,为此我想请求用户接受电池优化的忽略。在项目中AntiDoze,但是当我在虚拟设备中运行时我没有任何问题,但是当我传递给三星时我得到:FATALEXCEPTION:mainProcess:com.commonsware.android.antidoze,PID:21135java.lang.RuntimeException:UnabletostartactivityComponentInfo{com.commonsware.android.antidoze/com.commonsware.android.antidoze.
一切似乎都指向这两个命令:adbshelldumpsysbatteryunplugadbshelldumpsysdeviceidlestep我关注了theinstructions在运行Marshmallow官方版本的Nexus6上。我将手机插入测试机。我设置了我的应用程序来测试我想用打瞌睡测试的作品。我关掉屏幕。在运行上面的batteryunplug后,我没有得到任何输出,所以我认为它可以工作,但每次我运行deviceidlestep时,输出总是Steppedto:ACTIVE.我不确定这是否重要,但我正在尝试测试的应用程序的特定功能是我正在设置的闹钟,它可以将手机从打瞌睡模式中唤醒。
我正在Android上开发旧版VOIP应用程序。它现在不使用GoogleCloudMessaging技术,而是永远保持自己的TCP连接。最近Google推出了其AndroidM预览版Dozemode所以问题是:是否有任何解决方法可以让应用程序在打瞌睡模式下接收来电/消息,而无需重新设计整个系统以使用GCM? 最佳答案 您可以使用ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS要求用户允许电池优化忽略。但是,仔细检查OptimizingforDozeandAppStandby,好像是allowed
我有一个应用程序,它每10秒更新一次网络服务的位置。但是,在API级别23或更高级别的设备上,当doze模式在15分钟不活动后启动时,网络连接将丢失,应用程序将无法向我的网络服务发送进一步的位置更新。除了通过请求用户允许忽略电池优化来将应用列入白名单,这只允许每15分钟更新一次位置,我还有什么其他选择可以继续获取GPS位置更新并能够将它们发送到我的网络服务? 最佳答案 虽然克服打瞌睡模式是非常不道德的,但如果应用程序可以向用户解释电池问题,那么最好将应用程序列入白名单。另一种选择是让屏幕保持打开状态,以避免触发打瞌睡模式。getWi
如何在打瞌睡或非打瞌睡模式下运行jobscheduler,即我想一直运行bg作业。可能吗?JobInfojobInfo=newJobInfo.Builder(MYJOBID,jobService).setPeriodic(15*60*1000L).setExtras(bundle).setPersisted(true).build(); 最佳答案 有两种方法可以实现您想要的。将警报管理器与setExactAndAllowWhileIdle()结合使用或setAndAllowWhileIdle()使用WorkManager我个人建议您
我正在制作一个将在设备锁定时运行的应用程序,通过Activity#setShowWhenLocked(true)。我不想阻止设备进入低功耗状态。我知道系统使用Always-OnDisplay执行此操作,并且显示器为此具有关联的电源模式:/frameworks/base/core/java/android/view/Display.java286/**287*Displaystate:Thedisplayisdozinginalowpowerstate;itisstill288*onbutisoptimizedforshowingsystem-providedcontentwhileth
我正在开发实时位置跟踪应用程序,并通过使用前台服务将当前位置更新到服务器。现在我可以在设备处于深度sleep状态时保持应用程序处于Activity状态。但是由于网络访问在Doze模式下暂停,我无法在服务器上更新它。根据谷歌开发者指南的建议,我们可以通过使用高优先级FCM消息来解决这个问题。但就我而言,如何在网络访问暂停时通知服务器推送通知(需要通过操作系统或手动识别互联网访问禁用)。 最佳答案 一种方法是注册行动-"android.os.action.DEVICE_IDLE_MODE_CHANGED"这将在设备模式发生变化时广播,然
我如何在我的应用程序中知道手机是否处于打盹模式或我的应用程序是否处于待机模式?我也可以通过一些订阅方式知道吗? 最佳答案 There'sadifferencebetweenAppStandby(whereyourappgoestosleepbecauseit'slonely)andDoze(wherethesystemwenttosleepbecauseusershavelives).Dozeonlyworkswhenyourdeviceremainsstationary.Ifyoupickituporwakethescreen,D