시스템 앱알림 On/Off 상태 체크

srpark·2021년 4월 19일
0

시스템 앱알림 상태를 체크하려면 NotificationManagerCompat을 사용하면 됩니다.

NotificationManagerCompat.from(context).areNotificationsEnabled() 
// true : On / false : Off

앱알림 상태가 false일 때 아래와 같은 문제가 발생합니다.

  • Notification Push 알림이 보이지 않습니다.
  • Toast를 show했을 때 보이지 않습니다.

해결법 :

  • 알림 상태가 Off일 경우 앱내 Push설정 화면에 On으로 변경 할 수 있는 가이드를 주고 시스템 앱알림 변경 화면으로 이동시킵니다.
val intent = when {
    Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> {
        Intent().apply {
            action = Settings.ACTION_APP_NOTIFICATION_SETTINGS
            putExtra(Settings.EXTRA_APP_PACKAGE, packageName)
        }

    }
    Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP -> {
         Intent().apply {
             action = "android.settings.APP_NOTIFICATION_SETTINGS"
             putExtra("app_package", packageName)
             putExtra("app_uid", applicationInfo?.uid)
        }
    }
    else -> {
        Intent().apply {
            action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
            addCategory(Intent.CATEGORY_DEFAULT)
            data = Uri.parse("package:$packageName")
        }
    }
}
startActivity(intent)
  • Toast가 알림상태에 제약받고 싶지 않을 때 -> Snackbar로 변경하거나 Dialog로 변경

안드로이드 Toast 대체


중요 확인 사항

아래내용에 따라서 버전별 대처가 필요합니다.

시스템 앱알림 Off 상태일 때, Toast 노출 여부

  • 안드로이드 10미만 버전에서 Toast 비노출
  • 안드로이드 10이상 버전에서 Toast 노출

Toast는 안드로이드 11버전부터 Custom이 불가하기 때문에 위의 해결법과 같은 대처가 필요합니다.
안드로이드 11버전 이슈사항

profile
Android_Developer

0개의 댓글