Androidスリープ運転
アクセス権
onCreateで
方法
リクエスト結果
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
onCreateで
//
boolean ignoringBatteryOptimizations = isIgnoringBatteryOptimizations();
if (ignoringBatteryOptimizations){
Toast.makeText(this, " ", Toast.LENGTH_SHORT).show();
}else {
requestIgnoreBatteryOptimizations();
}
方法
/**
*
* @return
*/
@RequiresApi(api = Build.VERSION_CODES.M)
private boolean isIgnoringBatteryOptimizations() {
boolean isIgnoring = false;
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
if(powerManager != null) {
isIgnoring = powerManager.isIgnoringBatteryOptimizations(getPackageName());
}
return isIgnoring;
}
/**
*
*/
@RequiresApi(api = Build.VERSION_CODES.M)
public void requestIgnoreBatteryOptimizations() {
try{
Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:"+ getPackageName()));
startActivity(intent);
} catch(Exception e) {
e.printStackTrace();
}
}
リクエスト結果
/**
*
*/
boolean ignoringBatteryOptimizations = isIgnoringBatteryOptimizations();
if (ignoringBatteryOptimizations){
Toast.makeText(this, "OK", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(this, "failure", Toast.LENGTH_SHORT).show();
}