问题标签 [doze]

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 投票
1 回答
1980 浏览

android - 请求忽略电池优化后如何手动更改电池优化设置?

我使用以下代码请求忽略应用程序的电池优化。我可以成功请求许可。我可以使用 isIgnoringBatteryOptimizations() 检测应用程序是否在系统的白名单中。

我可以看到一个对话框,例如“让应用程序始终在后台运行?”,然后单击“是”。我假设它会将我的应用程序添加到系统电池优化白名单中。

这是我的问题。文档提到用户可以在Settings > Battery > Battery Optimization中手动配置列表。所以我希望一旦我请求并授予权限,我可以在系统设置中看到它,并且我应该能够手动删除它。但我什么也看不见。我看不到请求与系统设置中的列表之间有任何关系。

他们共享相同的列表吗?如果它们不相同,它们是否等效?

0 投票
0 回答
691 浏览

c# - 启用省电模式时 Xamarin.Android 应用程序崩溃

我在 Android 上的省电模式有一个严重的问题。启用省电模式后,我的应用程序崩溃。该问题出现在三星 Galaxy 手机(或任何带有 AOSP 或 LineageOS 的手机/模拟器上)上,但在魅族或小米上从未发生过(我猜是由于他们自己的电池优化;下面的代码总是返回 false,不是不管我是否在这些手机上打开了省电模式)。

第一次测试:省电模式禁用,应用程序运行良好。

第二次测试:启用省电模式,应用未列入白名单,应用在启动时崩溃。

第三次测试:禁用省电模式,应用启动并最小化;当我启用省电模式时,应用程序要求我将自己添加到白名单;即使我将应用程序添加到白名单,应用程序仍然可能崩溃。

第四次测试:开启省电模式,应用白名单;应用程序部分工作,随机崩溃或冻结。

我知道打瞌睡模式并在 AndroidManifest.xml 中启用了 REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 权限。这是我的代码,用于检查是否启用了省电模式以及应用程序是否在白名单中。但是我的应用程序在到达此代码之前崩溃(除了我描述的一个问题)。

PowerWorker.cs

崩溃时刻的Logcat:

无论我尝试从哪里运行它(我尝试从 App.cs(共享代码)和 MainActivity.cs(Android 本地代码)),我仍然得到相同的结果。我预计应用会要求用户将应用添加到白名单,但实际上即使用户这样做了也没关系,因为即使被列入白名单,应用仍然可能崩溃。所以我完全不知道该怎么做。

0 投票
0 回答
170 浏览

android - 从打瞌睡模式醒来后检测奥利奥中的信标

我试图用http://www.davidgyoungtech.com/2017/08/07/beacon-detection-with-android-8#the-new-way-fast-detections唤醒我的前台服务

预期行为

查看第一个信标并将 PendingIntent 发送到正在使用 BeaconConsumer 启动我的前台服务的 BroadcastReceiver。

实际行为

在打瞌睡模式之后,什么都没有被调用。

重现此行为的步骤

使用此处的相同代码:http ://www.davidgyoungtech.com/2017/08/07/beacon-detection-with-android-8#the-new-way-fast-detections 比将手机置于打盹模式并返回终端:

adb shell dumpsys deviceidle force-idle

adb shell dumpsys deviceidle 解除强制

广播接收器代码:

}

Ble扫描仪的初始化

移动设备型号和操作系统版本

诺基亚 5 - 安卓 8.1

即使我的应用程序被杀死/处于打盹模式/打盹模式后,当我看到第一个信标时,我应该怎么做才能启动我的前台服务?

谢谢

0 投票
0 回答
1035 浏览

android - 在没有 FCM 的打瞌睡时通过推送通知唤醒 android 应用

好样的!

我们正在使用 Xamarin 开发一个 Android 应用程序,该应用程序必须满足以下限制:

  • wifi 是的,但没有互联网连接
  • 没有 FCM/google play 服务(应用也应该在中国运行)
  • 来自 Manager-SW(使用 rabbitmq)的推送消息需要在发送后(< 1 分钟)以及设备处于打盹模式时快速到达
  • 没有拉动机制

目前我们有一个wifilock和一个wakelock。此应用程序的电池优化已关闭。这样,即使设备进入打盹模式,消息也总是会到达……但有一些例外。像 HUAWEI P20 这样的设备有自己的省电解决方案(应用程序启动)--> 应用程序没有运行,尽管我们拥有上述所有内容

此外,考虑到电池使用情况,此解决方案并不理想。

我研究过像 Pushy 这样的替代品,但对我来说,它们似乎也有打瞌睡模式的问题。

你知道 FCM 的替代品吗?

有没有什么简单的方法可以绕过华为的东西,而无需用户手动更改设置?

非常感谢你们所有人!

0 投票
0 回答
283 浏览

android - 如何在 Android 中正确使用 REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 权限以允许 GeofenceAPI 在打瞌睡期间也能正常工作?

我有一个使用 Geofence API 的 Android 应用程序

代码工作正常,如果设备不空闲,我会在广播接收器中调用 onReceive 方法。在空闲期间,设备根本没有反应。

我试图在清单中添加权限REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,并在另一个地方调用代码

如果我还没有允许忽略电池优化,我可以看到对话框要求这样做。我看不出应用程序的行为有什么不同。为了检查新权限是否有效,我有一个后台线程每秒记录一个计数器的值:

这是我得到的日志记录:

你可以注意到,在一开始每秒都有一个新的输出,然后有一些滞后。我认为这种滞后是由于空闲模式。无论有没有电池优化,我都会得到类似的日志。

我的应用程序还使用了一个前台服务,该服务应该避免应用程序空闲,但它似乎没有任何效果。

最后我有两个问题:

1-我应该如何使用权限忽略电池优化,以查看对应用程序的影响?

2-有没有更好的方法可以在设备空闲时管理地理围栏?

谢谢!

0 投票
1 回答
80 浏览

android - Android 9:带通知的前台服务在手机进入打盹模式后停止

我们定期使用位置更新来使用前台服务提供我们的服务。在 Android 9 中,该服务完全停止,直到用户解锁屏幕。它在 Android O 和​​ pre O 设备中运行良好。我转向互联网并尝试使用所有可用的工作。但似乎没有任何效果。有人面临这个问题吗?有什么解决办法吗?

根据文档,带有通知的前台服务免于阻塞。我曾尝试使用唤醒锁和警报管理器。到目前为止没有任何效果。我错过了什么?没有明确的文档,也没有 Stack over flow 回答这个问题。

0 投票
0 回答
308 浏览

android - 使用后台 SIP 连接测试 Android 打盹模式 - 不会断开连接

我可能会误解,但我有一个带有后台 SIP 连接的应用程序。我想测试打盹模式的效果并在插入时激活它,如下所示:

它报告:Now forced in to idle mode

在这一点上,我希望 SIP 连接终止,但它不会,并且应用程序会继续报告通过 logcat 中的 SIP 接收到的传入事件。

该应用程序未列入白名单。该应用程序使用前台服务。它还具有活动的 BLE 连接。测试的设备是 Android 9.0、7.0 和 6.0。没有即将到来的警报。

打瞌睡没有激活吗?为什么我仍然可以在打盹模式下使用后台 SIP?

我已经查看了打瞌睡模式未激活的其他问题,它们与我的场景无关或没有帮助。

输出自adb shell dumpsys deviceidle

0 投票
1 回答
84 浏览

android - 以 root 身份管理 Android 打盹模式

我正在开发一个应用程序,如果它具有 root 访问权限,则该应用程序旨在完全接管手机。该应用程序以设定的时间间隔拍摄照片,并将它们上传到 ftp 服务器。它的用例是将旧手机变成安全摄像头,或者一般用于延时摄影。我也在尝试尽可能多地节省电量,以便可以通过太阳能 USB 充电器在偏远地区使用手机。

理想情况下,手机应该每分钟左右使用 setAndAllowWhileIdle() 唤醒,拍照,睡觉。每拍x张照片,它会关闭飞行模式,连接到互联网,上传照片,打开飞行模式。

我的问题是,一旦我通过使用“dumpsys deviceidle force-idle”强制手机进入打盹模式,setAndAllowWhileIdle() 就会变得非常不准确。为接下来的 20 秒设置的警报甚至可以在 15 分钟内到达。

我想知道是否有任何方法以 root 身份将空闲维护窗口设置为我想要的任何时间间隔,以便我可以在合理的时间收到警报。或者,如果有任何其他方式作为 root 来获得可靠的警报(可靠如分钟精度)。或者,如果我可以将整个手机暂停一段时间。

0 投票
1 回答
59 浏览

android - 在打盹模式下使用 Ably 的问题

我使用 Ably API 作为在两个 Android 设备(手机)之间进行通信的一种方式。第一个是“”,它向第二个(“从”)发送请求。“ Slave ”的主要部分是后台服务,等待主人的命令。一旦来自服务器的请求到达,服务器获取其地理位置并将其发送回服务器。问题是,当机处于打盹模式时,Ably 不起作用(' onMessage ' 方法不起作用),直到我唤醒手机。同时, “即使手机处于“睡眠状态”,它也能正常工作。有什么办法可以解决这个问题吗?这是我的服务代码。

}

0 投票
0 回答
37 浏览

android - Android 呼叫通知,如 WhatsApp

我知道这个问题被问太多了,但我无法找到绝对的解决方案。有一个我的应用程序,比如 WhatsApp。自然,我想在应用程序关闭期间来电时通知用户。尽管我以高优先级发送通知,但某些 android 设备没有收到通知。我查看了谷歌关于打盹模式的文档并实施了所需的内容。

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

我的目标是什么?我希望用户始终收到通知。

像 WhatsApp 这样的应用程序已经克服了这个问题。我也只在Android上遇到这个问题。因为我在ios上使用了这个服务,而且非常成功。