USE_EXACT_ALARM 권한때문에 구글플레이 앱 업데이트 등록이 거부됨!!
안드로이드14 관련하여 정책사항들을 적용하는 과정에 있다.
AndroidManiefst.xml 파일에 <uses-permission android:name=”android.permission.USE_EXACT_ALARM”/> 권한을 부여하고
아래와 같이 코드를 변경하였다.
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(SimpleMainActivity.this, SimpleAlarmReceiver.class);
//android 12
PendingIntent sender;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
sender = PendingIntent.getBroadcast(SimpleMainActivity.this, REQUEST_CODE_ALARM_MANAGER, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
}else {
sender = PendingIntent.getBroadcast(SimpleMainActivity.this, REQUEST_CODE_ALARM_MANAGER, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
try {
long currentTime = System.currentTimeMillis();
//int interval = 5000;
int interval = 10000 * 6 * 60;//30분
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
if (alarmManager.canScheduleExactAlarms()) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, currentTime + interval, sender);
} else {
alarmManager.setWindow(AlarmManager.RTC_WAKEUP, currentTime, interval + interval, sender);
}
} else {
if (alarmManager != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) //api level 23 (Marshmallow 6.0)
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, currentTime + interval, sender);
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
alarmManager.setExact(AlarmManager.RTC_WAKEUP, currentTime + interval, sender);
else
alarmManager.set(AlarmManager.RTC_WAKEUP, currentTime + interval, sender);
}
}
}catch (Exception e) {
e.printStackTrace();
}
그런다음 구글플레이 마켓에 등록하였는데, 업데이트 거부 심사 결과 메일을 받았다.
위반 내용은 다음과 같다.
정확한 알람 권한 정책: 권한 사용이 앱의 핵심 목적과 직접적인 관련이 없습니다.
앱이 USE_EXACT_ALARM 권한에 허용되는 사용 방식을 준수하지 않는 것으로 확인되었습니다. 특히 권한 사용이 앱의 핵심 목적과 직접적인 관련이 없습니다.
정책 위반 해결 방법
- 제출한 모든 버전 코드에서 USE_EXACT_ALARM 권한 사용을 삭제하세요. 여기에는 프로덕션 및 테스트 트랙이 모두 포함됩니다.
- 정확한 알람 기능이 필요한 사용 사례가 있다면 대체 옵션으로 SCHEDULE_EXACT_ALARM 권한을 사용하는 것이 좋습니다.
SCHEDULE_EXACT_ALARM 권한을 이미 사용중이였기에 USE_EXACT_ALARM 권한만 제거하고 마켓에 다시 심사를 올렸다.