targetSdkVersion과 상관없이  Android 13 (Tiramisu) 기기부터 알림 권한 팝업이 필요하다..

 

 

TedPermission을 사용하면 쉽고 빠르게 권한 확인/요청 가능하다고 한다.
https://github.com/ParkSangGwon/TedPermission

 

GitHub - ParkSangGwon/TedPermission: Easy check permission library for Android Marshmallow

Easy check permission library for Android Marshmallow - GitHub - ParkSangGwon/TedPermission: Easy check permission library for Android Marshmallow

github.com

 

root/app/build.gradle에  TedPermission을 dependencies 추가하면 TedPermission을 사용 가능하다.

 

1. 먼저 Manifest에 권한 추가를 해준다.

<uses-permission
    android:name="android.permission.POST_NOTIFICATIONS"
    android:minSdkVersion="33" />

 

2. 권한 리스너를 생성한다. 

val permissionlistener: PermissionListener = object : PermissionListener {
            override fun onPermissionGranted() {
                Toast.makeText(this@MainActivity, "Permission Granted", Toast.LENGTH_SHORT).show()
            }

            override fun onPermissionDenied(deniedPermissions: List<String>) {
                Toast.makeText(
                    this@MainActivity,
                    "Permission Denied\n$deniedPermissions",
                    Toast.LENGTH_SHORT
                ).show()
            }
        }

 

3.notification 권한을 받아오는 코드를 작성한다.

//notification 권한 받아오기 (안드로이드 13부터 필수)
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            TedPermission.create()
                .setPermissionListener(permissionlistener)
                .setDeniedMessage("If you reject permission,you can not use this service\n\nPlease turn on permissions at [Setting] > [Permission]")
                .setPermissions(Manifest.permission.POST_NOTIFICATIONS)
                .check()
        }

만약 Manifest.permission.POST_NOTIFICATIONS 코드가 import 되지 않는다면,

 

import android.Manifest

해주면 된다.

 

+ Recent posts