Articles of android doze

电池省电+电话呼叫意图=>没有互联网?

注意:事实certificate,原始问题在其假设中是不正确的。 在底部查看有关其编辑的更多详细信息。 它现在关于电池节电器,而不是电池节电和打盹模式。 它也不是关于Service&BroadcastReceiver,而是仅仅是BroadcastReceiver。 背景 从Android Lollipop开始,Google推出了新的,手动和自动方式来帮助节省电池: “打盹”模式和“电池节电器”。 在某些情况下,由于这些技术,应用可能无法访问Internet。 问题 我在一个应用程序上工作,该应用程序需要使用在特定情况下触发的后台服务访问Internet,如果收到重要内容,则会显示一些UI。 作为用户,我注意到在某些情况下,它无法访问Internet。 检查应用程序是否可以访问Internet是这样的: public static boolean isInternetOn(Context context) { final NetworkInfo info = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); return !(info == null || !info.isConnectedOrConnecting()); } 问题是我需要检查为什么这有时会返回false,所以如果它失败了,我们应该告诉用户(可能通过通知)无法访问数据,因为设备限制了应用程序,并提供给用户从电池优化中列出应用程序。 我不确定哪些会影响这个:打盹,节电,或两者兼而有之,如果总是这样,对于所有设备,在所有情况下。 我试过的 我find的是如何查询打盹模式和省电模式(省电模式): public class PowerSaverHelper { public enum PowerSaveState { ON, OFF, ERROR_GETTING_STATE, IRRELEVANT_OLD_ANDROID_API } public enum WhiteListedInBatteryOptimizations { WHITE_LISTED, NOT_WHITE_LISTED, […]

Android 6.0打盹模式下的闹铃pipe理器问题

我制作了一个应用程序,一直运行到Android 6.0。 我认为这是Dozefunction,它不允许我的闹钟触发。 我使用sharedpreferences来处理选项: //ENABLE NIGHT MODE TIMER int sHour = blockerTimerPreferences.getInt("sHour", 00); int sMinute = blockerTimerPreferences.getInt("sMinute", 00); Calendar sTime = Calendar.getInstance(); sTime.set(Calendar.HOUR_OF_DAY, sHour); sTime.set(Calendar.MINUTE, sMinute); Intent enableTimer = new Intent(context, CallReceiver.class); enableTimer.putExtra("activate", true); PendingIntent startingTimer = PendingIntent.getBroadcast(context, 11002233, enableTimer, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager sAlarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); sAlarm.setRepeating(AlarmManager.RTC_WAKEUP, sTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY, startingTimer); 任何线索最新错误在这里? 这是一个阻止通话的应用程序。 谢谢! 编辑:我有3个文件(更多,但…)像: MainActivity […]

Android 7.0(Nougat)打盹模式停止Web服务

我有一个Android的前台服务与WiFi锁,充当另一个本地设备的Web服务。 在打盹模式之前,根据需要获取WiFi锁和服务是非常有效的。 即使我的应用closures了电池优化function,当屏幕closures几分钟时,手机仍然会closures应用程序。 我如何正确地提醒Android,客户请求的服务在前台正在执行,他们不希望他们的电话在这个时候睡觉? 编辑:这个问题仍然存在于Android 8.0(奥利奥)

如何在打盹模式(Android Preview M /棉花糖)转换设备?

我遵循这里描述的步骤: https://developer.android.com/preview/testing/guide.html#doze-standby 情况: Androiddebugging桥版本1.0.32 Nexus 9与预览M 贝壳: $ adb shell dumpsys battery unplug =>工作,设备拔掉 $ adb shell dumpsys deviceidle step =>输出:步进到:ACTIVE $ adb shell dumpsys deviceidle -h =>不起作用=>输出: Device idle controller (deviceidle) dump options: [-h] [CMD] -h: print this help text. Commands: step disable enable whitelist 我尝试过: adb shell dumpsys deviceidle enable 但它没有工作。 所以我的问题,如上所述,如何转移设备在打盹模式? 我做错了什么? […]

我如何正确地触发ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS意图?

正如文件中所述: “持有REQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限的应用程序可以触发系统对话框,让用户直接将应用程序添加到白名单,而无需进行设置。应用程序触发ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS意图触发对话。 有人可以告诉我正确的方法来解决这个问题吗?

省电+电话 – 意图=>没有互联网?

注:事实certificate,原来的问题在假设上是错误的。 在底部查看更多细节。 现在是关于电池节电器,而不是节电器和打盹模式。 这也不是关于服务和广播接收机,而只是广播接收机。 背景 从Android Lollipop开始,Google推出了新的手动和自动方式来帮助节省电量: “打盹”模式和“省电模式”。 在某些情况下,由于这些技术,应用程序可能无法访问互联网。 问题 我使用一个后台服务来访问互联网,这个服务在特定的情况下触发,如果有什么重要的东西被收到,它会显示一些用户界面。 我注意到,作为一个用户,在某些情况下,它无法访问互联网。 检查应用程序是否可以访问Internet是这样的: public static boolean isInternetOn(Context context) { final NetworkInfo info = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); return !(info == null || !info.isConnectedOrConnecting()); } 问题是,我需要检查为什么有时返回false,所以如果失败,我们应该告诉用户(通过通知,可能),数据不能访问,因为设备限制了应用程序,并提供用户从电池优化白名单应用程序。 我不确定哪些影响:瞌睡,电池节电,或者两者兼而有之,如果总是这样的话,对于所有的设备,无论如何。 我试过了 我所find的是如何查询打盹模式和省电模式(省电模式): public class PowerSaverHelper { public enum PowerSaveState { ON, OFF, ERROR_GETTING_STATE, IRRELEVANT_OLD_ANDROID_API } public enum WhiteListedInBatteryOptimizations { WHITE_LISTED, NOT_WHITE_LISTED, […]