问题标签 [android-doze-and-standby]

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 投票
2 回答
422 浏览

android - How to build a radio app without being affected by doze android?

Refered to this library https://github.com/iammert/RadioPlayerService I have this code for playing/pause radio

and method for doing processes

MyBroadcast Class

But in android 7 when i turn the screen off after 5-8 min radio stops playing music. I have done another example by doing in background and it is still the same thing. Please can anyone suggest me how to build a radio app without being affected by doze

0 投票
2 回答
224 浏览

java - 与服务器通信 - Android 应用

我有一个 android 应用程序,它每 15 分钟上传和下载一个文件。我正在使用AlarmManager setRepeating()来执行此操作,但它消耗大量电池且效率低下。但我想重组这个应用程序,以便它可以在 Marshmallow 及以上设备上运行。我阅读了有关JobScheduler同步适配器的信息,但挑战在于打盹模式。根据官方文档

https://developer.android.com/training/monitoring-device-state/doze-standby.html#understand_app_standby

JobScheduler 和 Sync Adapter 在打盹模式下不起作用。

那么,如何让安卓应用程序和服务器每 15 分钟进行一次通信,即使在打瞌睡模式下也是如此。

谢谢。

0 投票
0 回答
75 浏览

android - 在 OS 6 和 7 中的打盹模式后解锁屏幕时如何运行我的应用程序

在我的应用程序中有一个在后台运行的服务,但是 Doze 模式会在一段时间后将其杀死。为了克服这个问题,创建了粘性通知,此后它运行良好。

但是当在金立A1、vivo和onle plus 5上测试时,它不起作用,即使手机在晚上处于理想模式,粘滞通知也会自动清除。

如何解决这个问题?我想在理想情况下每次使用手机时重新启动后台服务。那么该怎么做呢?

0 投票
0 回答
431 浏览

android - 每次闹钟响起时使用 setExactAndAllowWhileIdle() 手动设置新闹钟:Android

我知道这已经被问过好几次了,但是直到现在我还没有找到适合我的东西。我正在使用 setRepeating() 来安排警报管理器每分钟运行一次。但是,在 Android 6.0 打盹模式之后,这已停止工作。我也尝试过使用 setExactAndAllowWhileIdle(),但它似乎没有重复,因为它不是 setexactRepeating。

下面是我的代码,

我需要每分钟调用一次 ServiceToUpdateWidget。即使手机进入深度睡眠或打盹模式,有没有办法做到这一点。我可以为此使用计时器或倒计时吗?thry 会在打盹模式下工作吗?

我已经浏览了许多链接,如下所示,

但是,我仍然无法每分钟调用一次我的服务。

我也尝试过使用alarmManager.setAlarmClock(),仍然没有运气。

我找到了一个链接,上面写着:https ://www.reddit.com/r/androiddev/comments/40ci7v/how_to_set_the_repeating_alarm_which_will_work/

“每次闹钟响起时,您都必须手动设置新闹钟它。”

当以前的警报敌人关闭时,如何手动设置新警报?请问,有人可以帮忙吗?

0 投票
1 回答
660 浏览

android - 电池优化白名单不会阻止 Doze 推迟我的应用

我的应用每 15 分钟向我的服务器发送 GPS 位置数据。此功能是应用程序的核心目的。

但是,当手机关闭且未使用时,GPS 记录会逐渐减少。GPS 记录之间的时间间隔是 15 分钟,然后是 1 小时、2 小时、4 小时、6 小时,然后当我移动手机或打开手机时又回到 15 分钟。

这似乎是由于 Android 6 中引入的打盹模式造成的。我将该应用程序添加到了电池优化白名单中,但这并没有产生任何影响,尽管文档声称并非如此

  1. 为什么白名单在这种情况下没有帮助?
  2. 我应该怎么做?定期唤醒锁会延迟并因此防止打瞌睡吗?

    /li>
0 投票
1 回答
697 浏览

android - 使用启用的省电模式管理 Android Nougat 或 Android Oreo 上的 Internet 连接

当设备使用启用的节电模式解锁时,我无法在新的 Android 版本上正确管理 Internet 连接。

android.permission.INTERNET 和 android.permission.ACCESS_NETWORK_STATE 权限被添加到清单文件中。

我注册收到的广播以在 Activity 启动时收听 ConnectivityManager.CONNECTIVITY_ACTION 并在停止时取消注册。当手动禁用\启用 Wi-FI 或蜂窝连接时,它可以完美运行。

我也使用方法来检查连接

每次手机解锁并且我的应用程序在前台时 isNetworkAvailable() 方法返回已连接但未连接。

我试图实现类似 ping 逻辑的东西,但是在解锁手机后,我收到的电话一直没有连接,直到禁用节电模式

有人知道如何处理 Android 7 和 Android 8 上的连接的好解决方案吗?

预先感谢

源代码 活动:

我的连接管理器实现:

0 投票
1 回答
416 浏览

android - 在打盹模式下定期跟踪用户

我想在特定时间段和特定时间跟踪用户。我每 2 分钟启动一次警报管理器(我从服务器获取周期性时间,这在我的应用程序中是动态的)并尝试获取大约一分钟的位置,之后我停止获取位置并保存在 DB 上获取的位置。无论如何,这种方法运行得很好,但在 api 级别 23 及更高级别,我的打瞌睡和待机模式应用程序无法正常运行,也不能在特定时间调用警报!我使用setExactAndAllowWhileIdle了 api 级别 23 及以上的方法,但效果不佳。

文件说,我不能在打瞌睡和待机模式下使用更多警报。我的问题是,如何在 android 6 及更高版本中跟踪用户?

0 投票
1 回答
4984 浏览

android - 如何应对华为和小米的“电池优化”

我有一个应用程序可以通过NotificationListenerService. 我的应用程序在几乎任何手机上都能在打盹模式和应用程序待机状态下存活(如果设置正确,例如异常或前台服务)。

然后是华为和小米对 Android 进行了自己的修改,以“提高电池寿命”。这些可能会严重干扰后台运行的应用程序,以至于一两周后必须重新安装应用程序。即使清除数据也不会“解冻”应用程序。即使是他们自己的“优化”的例外也不能可靠地解决这个问题。只有完全禁用所有优化,例如启用“高性能模式”才能解决此问题。但用户不想禁用这些选项。

您如何处理这些案件?我们如何才能阻止制造商停止搞乱核心 Android?更不用说有趣的 ANR 和崩溃了Zygote:(

0 投票
0 回答
117 浏览

android - 有没有API可以知道APP是否处于待机模式?

假设用户没有与应用程序交互。那么它什么时候进入待机模式。

如果它进入待机模式。有什么API可以知道吗?

0 投票
1 回答
481 浏览

android - BroadcastReceiver 无法访问互联网

我的广播接收器出现问题。

我已经设置了早上 6 点的闹钟,它必须启动我的广播接收器,它只需要从互联网上下载一些数据并进行处理。

例如,如果我将闹钟设置为下午 3 点,它就可以正常工作。但问题是在早上 6 点,下载失败,因为它没有网络连接。

我在尝试下载之前执行了部分唤醒锁定。会不会和这个有关?手机进入深度睡眠和部分唤醒锁定是否不够?

还能是什么?我已经仔细检查过启用网络数据的手机,并且我确实在夜间收到电子邮件和whatsapp。

有没有办法让android恢复连接?

任何提示或帮助都非常受欢迎!

最好的问候,费德里科。

我的代码:

来自 BroadcastReceiver 的 OnReceive 方法:

_Utils.isDataEnabled: