android - 如何在打瞌睡模式下持续激活互联网棉花糖和牛轧糖

标签 android android-service

我正在开发实时位置跟踪应用程序,并通过使用前台服务将当前位置更新到服务器。

现在我可以在设备处于深度 sleep 状态时保持应用程序处于 Activity 状态。但是由于网络访问在 Doze 模式下暂停,我无法在服务器上更新它。
根据谷歌开发者指南的建议,我们可以通过使用高优先级 FCM 消息来解决这个问题。 但就我而言,如何在网络访问暂停时通知服务器推送通知(需要通过操作系统或手动识别互联网访问禁用)。

最佳答案

一种方法是注册行动-

"android.os.action.DEVICE_IDLE_MODE_CHANGED" 

这将在设备模式发生变化时广播,然后使用以下方法确定设备处于打瞌睡/非打瞌睡状态:

PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);

boolean isDeviceIdle = pm.isDeviceIdleMode();

关于android - 如何在打瞌睡模式下持续激活互联网棉花糖和牛轧糖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42241852/

相关文章:

android - 空 Intent 重新传递给服务 onStartCommand()

java - Android - 绑定(bind)到来自其他应用程序的服务

android - 如何创建像 Windows 服务一样运行的 Android 服务?

java - 在除我自己的设备(奥利奥)之外的其他设备中从相机 Intent 检索图片时出现问题

android - 解压缩 .apk 文件的能力是否意味着任何人都可以在 Playstore 中找到所有专有应用程序的源代码?

android - 回收站 View 非常滞后

android - org.json.JSONException 无法在 android 中解析 json 响应

android - 我的服务没有被破坏 - 如何停止服务

android - 接到来电时如何调用 Activity 。

android - JobScheduler 问题 android