android 休眠模式下的网络访问

ekqde3dh  于 2022-12-31  发布在  Android
关注(0)|答案(2)|浏览(194)

是否可以在低电耗模式处于活动状态时使用网络访问?如果我的应用忽略电池优化,它不会进入待机状态,但会受到低电耗模式的影响。我错过了什么吗?

ee7vknir

ee7vknir1#

无论您的应用程序是否忽略电池优化,网络访问在休眠模式下都将被禁用。将设备从休眠模式唤醒并获取网络访问权限的唯一方法是向您的应用程序发送高优先级Google Cloud消息。
编辑:可以让Android忽略应用的电池优化,这实际上禁用了应用的打盹模式,但是这需要使用方法 setExactAndAllowWhileIdle(最多每15分钟唤醒一次)和用户交互,可以这样做:

Intent intent = new Intent();
String packageName = context.getPackageName();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
//battery optimizations toggle
if (pm.isIgnoringBatteryOptimizations(packageName))
    //give the user the option to enable battery optimizations again
    intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
else {
    intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
    intent.setData(Uri.parse("package:" + packageName));
}
context.startActivity(intent);

编辑:建议将权限 android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 添加到清单中。此外,这对于建议的解决方案是不必要的,它将导致您的应用从Play商店中删除。

m1m5dgzv

m1m5dgzv2#

根据文档,您现在可以为您的应用程序提供前台通知,这将无视打盹模式,您的应用程序应该能够访问网络。

相关问题