'Depends on Phone library
Private Sub CheckAndRequestIgnoreBatteryOptimizations As ResumableSub
Dim p As Phone
If p.SdkVersion < 23 Then Return True
Dim context As JavaObject
context.InitializeContext
Dim PowerManager As JavaObject = context.RunMethod("getSystemService", Array("power"))
Dim ignoring As Boolean = PowerManager.RunMethod("isIgnoringBatteryOptimizations", Array(Application.PackageName))
If ignoring Then Return True
Dim in As Intent
in.Initialize("android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS", "package:" & Application.PackageName)
StartActivity(in)
Wait For B4XPage_Appear 'Change to Activity_Resume if mistakenly not using B4XPages.
Return PowerManager.RunMethod("isIgnoringBatteryOptimizations", Array(Application.PackageName))
End Sub