设置应用程序允许在后台自动运行时的电池使用情况并编写代码以启用该功能。代码示例如下:
在AndroidManifest.xml文件中添加以下权限:
在代码中使用以下方法来请求允许在后台自动运行:
private fun requestBatteryOptimizationPermission() {
val packageName = context?.packageName
val pm = context?.getSystemService(Context.POWER_SERVICE) as PowerManager?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && pm?.isIgnoringBatteryOptimizations(packageName) == false) {
val intent = Intent()
intent.action = Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
intent.data = Uri.parse("package:$packageName")
context?.startActivity(intent)
}
}
在启动后台服务或正在执行任何需要在后台运行的任务的代码中添加以下方法:
private fun checkAndRequestBatteryOptimizationPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.System.canWrite(context)) {
requestBatteryOptimizationPermission()
}
}
在启动时使用以下方法进行检查:
checkAndRequestBatteryOptimizationPermission()