未加入電池優(yōu)化的白名單時(shí)彈出系統(tǒng)選擇彈窗,已加入時(shí)跳轉(zhuǎn)相應(yīng)頁(yè)面
//在manifest文件中配置權(quán)限:
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
import android.os.PowerManager
import android.provider.Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS
import android.provider.Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
/**
* 忽略電池優(yōu)化
*/
private fun ignoreBatteryOptimization(activity: Activity) {
val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
var hasIgnored = false
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
hasIgnored = powerManager.isIgnoringBatteryOptimizations(activity.packageName)
// 判斷當(dāng)前APP是否有加入電池優(yōu)化的白名單,如果沒有洞拨,彈出加入電池優(yōu)化的白名單的設(shè)置對(duì)話框扯罐。
if (!hasIgnored) {
//未加入電池優(yōu)化的白名單 則彈出系統(tǒng)彈窗供用戶選擇(這個(gè)彈窗也是一個(gè)頁(yè)面)
val intent = Intent(ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)
intent.data = Uri.parse("package:" + activity.packageName)
startActivity(intent)
}else{
//已加入電池優(yōu)化的白名單 則進(jìn)入系統(tǒng)電池優(yōu)化頁(yè)面
val powerUsageIntent = Intent(ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS)
val resolveInfo = packageManager.resolveActivity(powerUsageIntent, 0)
//判斷系統(tǒng)是否有這個(gè)頁(yè)面
if (resolveInfo != null) {
startActivity(powerUsageIntent)
}
}
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者