Android
도즈 모드
수색…
비고
도즈 모드는 유휴 상태 일 때 휴대 전화를 잠자기 상태로 만드는 일련의 변경 및 규칙입니다.
안드로이드 6.0에서 Marshmallow : Doze 모드는 화면이 꺼져있는 동안 활성화되고, 기기는 정지 상태이며 배터리로 작동합니다. 위의 그림에서 알 수 있듯이 도즈 모드가 활성화되면 장치에 웨이크 록, 네트워크 액세스, 작업 / 동기화, 알람, GPS / Wi-Fi 스캔이 발생하지 않습니다.
Android 7.0 Nougat : 휴대 전화가 주머니에있는 경우 (화면이 꺼져 있고 배터리로 작동하지만 정지 상태가 아닌 경우) 도세 모드 기능을 사용하려는 경우가있을 것이라고 생각하십니까? 그래서 Google은 Extended Doze Mode를 발표했습니다. 화면이 꺼져 있지만 고정되어 있지 않을 때 실행됩니다. 이 다이어그램에서 알 수 있듯이 네트워크 액세스 및 작업 / 동기화 만 사용할 수 없습니다. Extended Doze는 첫 번째 Doze 모드를 대체하지 않습니다. 그들은 전화 상태에 따라 (고정 여부) 함께 작동합니다. 차이점은 다음과 같습니다. 개발자는 다음 사항을 알고 있어야합니다.
- Doze는 우선 순위가 높은 GCM (Google 클라우드 메시징) 메시지 (사용자가 즉각적인 알림을 필요로하는 경우)를 위해 일시적인 대기 로크 및 네트워크 액세스를 유지할 수 있습니다.
- 전경 서비스 (예 : 음악 재생)는 계속 작동합니다.
자세한 내용은 https://developer.android.com/training/monitoring-device-state/doze-standby.html 에서 확인할 수 있습니다.
도즈 모드를 사용하지 않는 앱 제외
- 전화 설정 열기
- 열린 배터리
- 메뉴를 열고 "배터리 최적화"를 선택하십시오.
- 드롭 다운 메뉴에서 '모든 앱'을 선택합니다.
- 허용하려는 앱을 선택하십시오.
- "최적화하지 않음"을 선택하십시오.
이제이 앱은 최적화되지 않은 앱 아래에 표시됩니다.
앱에서 isIgnoringBatteryOptimizations()
를 호출하여 허용 목록에 있는지 확인할 수 있습니다.
프로그래밍 방식으로 Android 애플리케이션을 허용 목록에 추가
허용 목록에 추가하면 앱의 도즈 모드가 비활성화되지 않지만 네트워크 및 잠금 해제 기능을 사용하여 허용 할 수 있습니다.
프로그래밍 방식으로 Android 애플리케이션을 허용 목록에 추가하는 방법은 다음과 같습니다.
boolean isIgnoringBatteryOptimizations = pm.isIgnoringBatteryOptimizations(getPackageName());
if(!isIgnoringBatteryOptimizations){
Intent intent = new Intent();
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, MY_IGNORE_OPTIMIZATION_REQUEST);
}
위의 활동을 시작한 결과는 다음 코드로 확인할 수 있습니다.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == MY_IGNORE_OPTIMIZATION_REQUEST) {
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
boolean isIgnoringBatteryOptimizations = pm.isIgnoringBatteryOptimizations(getPackageName());
if(isIgnoringBatteryOptimizations){
// Ignoring battery optimization
}else{
// Not ignoring battery optimization
}
}
}