반응형
도즈 모드, 잠자기 모드일 시 제한사항과 관련 자세한 사항은 아래 개발자 사이트를 참조하시기 바랍니다.
https://developer.android.com/training/monitoring-device-state/doze-standby?hl=ko
잠자기 모드 이해
사용자가 플러그를 뽑고 화면이 꺼진 채로 기기를 일정 기간 정지 상태로 두면 기기는 잠자기 모드를 시작합니다.
제한사항
- 네트워크 엑세스 정지
- wake lock 무시
- 유지보수 기간 지연
- 동기화 어댑터 실행 X
- JobScheduler 실행 X
특정 앱을 베터리 최적화에 들어가지 않게 하는 방법입니다.
AndroidManifest.xml
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
[핵심 코드]
1
2
3
4
5
6
7
8
9
10
|
PowerManager pm= (PowerManager) getSystemService(Context.POWER_SERVICE);
String packageName= getPackageName();
if (pm.isIgnoringBatteryOptimizations(packageName) ){
} else { // 메모리 최적화가 되어 있다면, 풀기 위해 설정 화면 띄움.
Intent intent=new Intent();
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
startActivityForResult(intent,0);
}
|
예제 코드 onCreate()에 넣었습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package kr.co.ex.ex_dozemode;
import androidx.annotation.RequiresApi;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.PowerManager;
import android.provider.Settings;
public class MainActivity extends AppCompatActivity {
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PowerManager pm= (PowerManager) getSystemService(Context.POWER_SERVICE);
String packageName= getPackageName();
if (pm.isIgnoringBatteryOptimizations(packageName) ){
} else { // 메모리 최적화가 되어 있다면, 풀기 위해 설정 화면 띄움.
Intent intent=new Intent();
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
startActivityForResult(intent,0);
}
}// onCreate()..
}// MainActivity class..
|
<실행 화면>
<실제 휴대폰 화면>
반응형
'안드로이드 > 개발자 일상' 카테고리의 다른 글
안드로이드 Service ( 자동 종료되지 않는 서비스 주의점 ) (7) | 2020.04.24 |
---|---|
안드로이드 ExpandableListAdapter( 하위 목록까지 보여주기 ) (7) | 2020.04.23 |
안드로이드 Blutooth 권한 활성화 요청 ( BlutoothAdapter ) (6) | 2020.04.20 |
안드로이드 AltBeacon ( 비콘 연결 ) (16) | 2020.04.19 |
안드로이드 RecyclerView 리스트 이동 (삼선 이미지 드래그 시) (11) | 2020.04.13 |
댓글