targetSdkVersion과 상관없이 Android 13 (Tiramisu) 기기부터 알림 권한 팝업이 필요하다..
TedPermission을 사용하면 쉽고 빠르게 권한 확인/요청 가능하다고 한다.
https://github.com/ParkSangGwon/TedPermission
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
해주면 된다.
'똥 싸기 > 안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 스튜디오 버전 업데이트 후 gradle project sync failed 에러 (0) | 2023.02.12 |
---|---|
안드로이드 스튜디오 StartActivity 팅김 (0) | 2023.02.12 |