adb shell dumpsys deviceidle whitelist +<Package Name>
谁能给我建议哪种最好的方法来不中断地运行应用程序?
实际上,如果不运行前台服务,就无法做到这一点。在白名单中列出可能不适合您的应用程序,即使是这样,您还是要求用户给您许可,从最终用户的角度来看,这可能是危险的。
不过,我对此有个窍门。收听Android的广播,当你捕捉到该设备将进入打瞌睡模式时,启动前台服务。在大多数情况下,用户将无法看到您的前景通知图像,也不知道您正在运行一个服务。因为设备处于Hibernate模式,这意味着它在某个用户不观看的地方是稳定的。所以你可以做任何需要的事情。
您还可以收听打瞌睡模式结束时发送的广播。当这种情况发生时,停止前台服务,以正常的逻辑与报警经理一起工作。
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if(intent.getAction().equals("android.os.action.DEVICE_IDLE_MODE_CHANGED")){
if (pm.isDeviceIdleMode()) {
startForegroundService();
//stopAlarmManagerLogic();
} else {
stopForegroundService();
//startAlarmManagerLogic();
return;
}
return;
}
}
我正在使用后台服务,以获得用户的位置和上传到服务器。 我使用了一个扩展Service类的LocationTrack类和扩展BroadcastReciver的AlramReciver。 我已经在manifest中添加了所有权限,并在manifest文件中注册了AlarmReciver和LocationTracker类。 Oreo-在前台启动服务 https://developer.android.c
请注意,禁用应用程序的电池优化不会帮助打瞌睡模式,正如这里所回答的。
进入Androids的Doze模式(锁定屏幕,运行adb shell dumpsys电池拔出,然后运行adb shell dumpsys deviceidle Force-Idle) 几秒钟/分钟后,在“运行”选项卡下,将出现以下内容: 和 捕获的异常是:MyDatabase getDatabaselData[cloud_firestore/unavailable]服务当前不可用。 pubspec
我试图实现推送通知与反应本机与此插件反应本机推送通知。我成功的是在应用程序运行时收到通知(在前台),但我想做的是在应用程序关闭时收到通知(后台),不运行,当我收到通知进入应用程序时。 我的密码 我正在使用firebase函数发送通知 AndroidManifest。xml 正如我之前所说的,只有当应用程序运行时,当我使用firebase http功能发送时,我才能成功获得通知。我现在只在Andro
问题内容: 我正在使用Eclipse管理我的Android项目,该项目使用Amazon的适用于AWS的Android库。我已将库jar文件添加到./libs文件夹,从中我将库添加到了Java构建路径(项目属性-> Java构建路径->库->添加JARS …)。我的应用程序可以正确编译,但是当我在模拟器或电话上运行它时,会出现NoClassDefFoundError。我了解到,正确编译应用程序后通常
我遇到了一个需求,但我无法获得正确的实施方式,因此需要您的帮助。 我想做什么我想根据收到的通知执行以下操作: 当应用程序处于打开状态且处于前台(即用户可见)且我收到通知时,我只需显示一个弹出窗口即可开始我的活动B 我做了什么?我已经达到了第1点和第2点。我想达到第三点。我试过下面的方法 然而,在这两种情况下,点#2和#3都返回true,所以我不能仅区分#3。 我也尝试了下面的每一个活动, 但是,它