Android프로그래밍

 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 권한만 제거하고 마켓에 다시 심사를 올렸다.

error: Content is protected !!