์์. ์ด์ ๋ฐ๊ฒฌ
Android 13 ๋จ๋ง์์ ํธ์๋ฅผ ๋ฐ๊ณ ์์คํ ์๋ฆผ์ ๋์ฐ์ง ๋ชปํ๋ ์ด์๊ฐ ์์์ ์๊ฒ ๋๋ค.
์์ธ ํ์
Android 13๋ถํฐ ์๋ก ์ค์น๋๋ ์ฑ๋ค์ ์๋ฆผ ์์ฑ ๊ถํ์ด ์๋ค๋ ๊ฒ์ ์์๋ค. ํด๋น ์ด์๋ ํ ์คํธ ๋จ๋ง์ด Android 13 ๋จ๋ง์, ํ ์คํธ ์ฑ์ด ์ ๊ท๋ก ์ค์น๋์๊ธฐ ๋๋ฌธ์ด์๋ค.
Android 12๋ ๊ธฐ๋ณธ์ผ๋ก ์๋ฆผ ์์ฑ ๊ถํ์ด ์์ด์ ์ด๋ฐ ์ด์๋ฅผ ๋ง๋ ์ผ์ด ์์๋ค.
์ ๋ง ์ ์ค๋ช ํด์ฃผ์ ๊ธ
https://codechacha.com/ko/android-13-notification-permission/
๊ณต์๋ฌธ์
https://developer.android.com/about/versions/13/changes/notification-permission?hl=ko
์ฑ์ target api version์ด 33์ด๋ผ ๋ฐํ์ ๊ถํ ์์ฒญ์ ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ก ์ฝ์ ํด์ผ ํ๋ค.
Android 12, Android 13 ๋จ๋ง์ ๋์์ผ๋ก ํ ์คํธ๋ฅผ ํด๋ดค๋๋ฐ, POST_NOTIFICATION ๊ถํ ์ฒดํฌ๋ ๋ ๋จ๋ง ๋ค ๊ฐ๋ฅํ๋ ๋ฐํ์ ์๋ฆผ ๊ถํ ์์ฒญ์ Android 13๋ง ๊ฐ๋ฅํด์ ๋ถ๊ธฐ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค.
๋ฌธ์ ํด๊ฒฐ์ ํ์
Android 13 ์ด์ ๋จ๋ง์ ๋ฐํ์ ๊ถํ ์์ฒญ์ ์งํํ๊ณ , Android 12 ์ดํ ๋จ๋ง์ ์ด์ ๋ถํฐ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ค์ง ์์๊ธฐ์ ํ์ํ๋ฅผ ์ ์งํ๊ฑฐ๋ ์ฑ ์ค์ ํ๋ฉด์ผ๋ก ์ฌ์ฉ์๋ฅผ ์ ๋ํด ๊ถํ์ ์ป๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ฉด ๋๋ค๋ ํฐ ๋ฐฉํฅ์ด ๊ฒฐ์ ๋๋ค.
์ด์ ๊ธฐํ์์ ์ด์ผ๊ธฐํด์ ๊ตฌ์ฒด์ ์ผ๋ก ์ ํ๋ฉด ๋๋ค.
์ฌ์ค ์ฐ๋ฆฌ ์ฑ ๊ธฐํ์, ํธ์๋ฅผ ๋ฐ์์ ๋ ์ฑ์ด ํฌ๊ทธ๋ผ์ด๋ ์ํ๋ฉด ์ปค์คํ ํ ์คํธ๋ฅผ ๋์์ฃผ๊ณ , ์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋์ ์๊ฑฐ๋ ์คํ ์ค์ด์ง ์์ ๊ฒฝ์ฐ์๋ ์์คํ ์๋ฆผ์ผ๋ก ํธ์ ๋ด์ฉ์ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ๋ค. ์๋ฆผ ๊ถํ์ด OFF๋ ์ํ๋ผ๋ฉด ํธ์๊ฐ ์ ์์ ์ผ๋ก ์๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ํ์ด๊ฑฐ๋ ์คํ ์ค์ด์ง ์์ ์ํ์์๋ ์๋ฆผ ๋ด์ฉ์ ์ฌ์ฉ์๊ฐ ์ ์ ์๊ฒ ๋๋ค. ์ด ์ด์๋ ์๋ ๊ธฐํ์ ํ์ด๋ฒ๋ฆฌ๋ ํฐ ๋ณ๊ฒฝ์ฌํญ์ด๊ธฐ๋ ํ๋ค. ๊ทธ๋ฌ๋ ์ฑ์ ๋ค๋ฅธ ์ฌ์ฉ์ฑ์๋ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
* ์ด ๋ฌธ์ ํด๊ฒฐ์๋ ์ ๋ต์ด ์๋ ๊ฒ์ด ์๋๋ผ์ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ด ๋ฒ๋ณต๋์๋ค. ์ ์ด๋ฐ ๋ฐฉ์์ ์ ํํ๋์ง, ๊ทธ๋ฐ๋ฐ ์ ๋ฒ๋ณต๋์๋์ง์ ๋ํ ๊ณผ์ ๋ ๊ณ ๋ฏผ์ ์ฌ์ ์ด๊ธฐ์ ๊ธฐ๋ก์ผ๋ก ๋จ๊ธด๋ค.
1) ์ผ๋จ ๊ธฐํ์๋ฅผ ๋ง๋๊ธฐ ์ ์ ์ ์ํ ์ ์๋ ๊ฒ๋ค์ ์ ๋ฆฌํ๋ค.
1. ํ์ฅ๋๊ณผ ๋ ผ์ํด์, ์ฑ ์ง์ ํ๋ก์ฐ์์ ์๋ฆผ ๊ถํ์ ์ฒดํฌํ๋ ๊ฒ์ด ์ ํฉํ๋ค๋ ๊ฒฐ๋ก ์ด ๋์๋ค. > โ
- ์๋ฆผ ๊ถํ์ด ์๋ Android 13 ์ด์ ๋จ๋ง์ ๋ฐํ์ ์๋ฆผ ๊ถํ ์์ฒญ์ ์งํํ๋ค. > โก
- ์๋ฆผ ๊ถํ์ด ์๋ Android 12 ์ด์ ๋จ๋ง์ ์ฌ์ฉ์์๊ฒ ์ด ๊ถํ์ด ํ์ํ๋ค๋ ๊ฒ์ ์๋ฆฌ๋ ๋ฌธ๊ตฌ์ ํ์ ์ ๋์ฐ๊ณ , ํ์ ์ positive ๋ฒํผ์ ํตํด ์ฑ์ ์ค์ ํ๋ฉด์ ์ง์ ํด ์๋ฆผ ๊ถํ์ On ํ๋๋ก ์ ๋ํ๋ค. > โข
2. Android 13 ์ด์ ๋จ๋ง ์ฌ์ฉ์๊ฐ ๊ถํ์ ๊ฑฐ๋ถํ ๊ฒฝ์ฐ, ์ฌ์ฉ์์๊ฒ ์ด ๊ถํ์ด ํ์ํ๋ค๋ ๊ฒ์ ์๋ฆฌ๋ ๋ฌธ๊ตฌ์ ํ์ ์ ๋์ฐ๊ณ , ํ์ ์ positive ๋ฒํผ์ ํตํด ์ฑ์ ์ค์ ํ๋ฉด์ ์ง์ ํด ์๋ฆผ ๊ถํ์ On ํ๋๋ก ์ ๋ํ๋ค. > โฃ
ํ์ฅ๋์ ์๋ฆผ ๊ถํ์ ๋ฐ๋ ๊ฒ์ด ํ์์ ์ด๋ผ๊ณ ์๊ฐํ์ จ๋ค. ๊ธฐ์กด ๊ธฐํ์ด ๋ง๊ฐ์ง์ง ์๊ธฐ ์ํด์๋ ๊ด์ฐฎ์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํด์ ๋ต.
โ ์์
์ฑ ์ง์ ํ๋ก์ฐ์์ ์๋ฆผ ๊ถํ ์ฒดํฌ ํ๋ก์ธ์ค ์ฐจ๋ก๊ฐ ์ค๋ฉด
1) Manifest.permission.POST_NOTIFICATIONS ๊ถํ์ด ์๋์ง ํ์ธํ๋ค.
ContextCompat.checkSelfPermission(context, permssion)์ ์ฌ์ฉํ๋ค.
1-1) ๊ถํ์ด ์๋ค. > ์ฑ ์ง์ ํ๋ก์ฐ์ ๋ค์์ผ๋ก ๋์ด๊ฐ๊ธฐ
โก ์์
1-2) Android 13 ๋จ๋ง์ ๊ถํ์ด ์๋ค. > ๊ถํ ์์ฒญํ๊ธฐ
๊ถํ ์์ฒญ์ ์ํด registerForActivityResult(ActivityResultContracts.RequestPermission())์ ์ฌ์ฉํ๋ค.
1-2-1) registerForActivityResult(ActivityResultContracts.RequestPermission()) ์ ์ฝ๋ฐฑ์์,
1-2-1) ์ฌ์ฉ์๊ฐ ๊ถํ์ ํ์ฉํ๋ฉด > ์ฑ ์ง์ ํ๋ก์ฐ์ ๋ค์์ผ๋ก ๋์ด๊ฐ๊ธฐ
โข ์์
1-2-2) ์ฌ์ฉ์๊ฐ ๊ถํ์ ํ์ฉํ์ง ์์ผ๋ฉด > ์ฌ์ฉ์์๊ฒ ๊ถํ์ด ํ์ํ๋ค๋ ํ์ ๋ ธ์ถํ๊ธฐ
ํ์ ์ด dismiss ๋ ๊ฒฝ์ฐ, ์ฑ ์ง์ ํ๋ก์ฐ์ ๋ค์์ผ๋ก ๋์ด๊ฐ๊ธฐ
1-2-2-1) ํ์ ์ Positive ๋ฒํผ ํญ ์ > ์ฑ์ ์ค์ ํ๋ฉด์ ์ง์ ํ๊ณ , ํ์ dismiss
1-2-2-2) ํ์ ์ Negative ๋ฒํผ ํญ ์ > ํ์ dismiss
โฃ ์์
1-3) Android 12 ๋จ๋ง์ ๊ถํ์ด ์๋ค. > ์ฌ์ฉ์์๊ฒ ๊ถํ์ด ํ์ํ๋ค๋ ํ์ ๋ ธ์ถํ๊ธฐ
1-3-1) 1-2-2, 1-2-2-1, 1-2-2-2์ ๋ฐ๋ณต
2) ๊ธฐํ์๋ฅผ ๋ง๋์ ์ ์ํ๊ณ , ๊ตฌ์ฒด์ ์ธ ๊ธฐํ ์ฌํญ ๋ ผ์ํ๊ธฐ
๊ธฐํ์๋ฅผ ๋ง๋์ ์ด์์ ์ด์ ๋ฐ์ ์์ธ์ ์ค๋ช ํ๋ค. ์๋๋ก์ด๋ ํ๋ ์์ํฌ์ ๊ถํ์ ๋ํ ๊ท์น๋ค๋ ์ค๋ช ํด์ฃผ๊ณ . ์ต๊ทผ์ ์์ฃผ ๋๋ผ๋ ๊ฑฐ์ง๋ง, ๊ฐ๋ฐ์๊ฐ ๋ค๋ฅธ ๋ถ์ ์ฌ๋๋ค๊ณผ ํ์ ํ๋ ๊ณผ์ ์์ ๊ธฐ์ ์ ๋ํด ์ฝ๊ฒ ์ค๋ช ํ ์ ์๋ ๊ฒ๋ ์ํต ๋ฅ๋ ฅ ์ค์ ํ๋์ธ ๋ฏ ํ๋ค. ๊ธฐํ์๋ ๊ณ ๋ง๊ฒ๋ ๋ด๊ฐ ์ ๋ฌํ๋ ์ฌํญ๋ค์ ์ ๋ง ์ ๋๋ก ์ดํดํ๋ค. (๋ด๊ฐ ์๋ฌด๋ฆฌ ์ด์ฌํ ์ค๋ช ํด๋ ์ดํดํ์ง ๋ชปํ๋ ๋ถ๋ ์๋ค๋ ๊ฒ๋ ๊ฒฝํํด๋ดค๋ค๐ฅบ ์ ๊ฐ ์ญ๋์ ์ข ๋ ๊ธธ๋ฌ ๋ณด๊ฒ ์ต๋๋ค...)
์๋๋ก์ด๋ ์์คํ ์ ์ฌ์ฉ์๊ฐ ๋ฐํ์ ๊ถํ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ(๋ ๋ฒ ์ ๋) ๊ฑฐ์ ํ๋ฉด ๋ ์ด์ ๊ถํ ์์ฒญ์ ์งํํ์ง ์๋๋ค๊ณ ๊ธฐํ์์๊ฒ ์๋ ค์คฌ๋ค. ๊ธฐํ์๋ ์ฌ์ฉ์๊ฐ ๊ทธ ์ ๋๋ก ๊ฑฐ์ ํ์ผ๋ฉด ๋ ๊ฒ ๊ฐ๋ค๊ณ , ๋ ์ด์ ์ฌ์ฉ์๋ฅผ ๊ท์ฐฎ๊ฒ ํ์ง ์๋ ์ชฝ์ผ๋ก ์งํํ์๊ณ ํ๋ค. ๊ธฐํ์๊ฐ ๊ทธ๋ ๊ฒ ์ด์ผ๊ธฐํ๋ค๋ฉด... ๋ต. (ํ์ฅ๋๊ณผ๋ ์๋ฆผ ๊ถํ์ ๋ฐ์์ค๋ ๊ฒ์ ๊ฐ์ ํ๋ ์ชฝ์ผ๋ก ์ด์ผ๊ธฐํ๊ธฐ๋ ํ์๋๋ฐ, ๊ธฐ์กด ๊ธฐํ์ด ๋ง๊ฐ์ง ์๋ ์๋ค๋ ๊ฒ์ ๊ธฐํ์๊ฐ ์๊ณ ๋ ๊ทธ๋ ๊ฒ ์งํํ๋ค๋ ๋ฑํ ๊ฐํ๊ฒ ๋ฐ๋ํ ์ด์ ๊ฐ ์์๋ค. ๊ธฐํ์์ ์์ญ์ ์นจ๋ฒํ๊ณ ์ถ์ง๋ ์์๋ค.)
์๋๋ก์ด๋ ๋๋ฒจ๋กํผ์ค์์ ๊ณต์์ ์ผ๋ก ์ด๋ค ์ ์ฅ์ธ์ง๋ฅผ ์ข ๋ ์ดํด๋ณด์๋ค.
https://developer.android.com/training/permissions/requesting?hl=ko
๊ณต์๋ฌธ์์์ ์ ๊ณตํ๋ ๊ถํ ์์ฒญ ์ํฌํ๋ก๋ฅผ ์ฐพ์๋ดค๋ค.
๊ทธ๋ฆผ1์ 8b๋ฒ ์์๋ฅผ ๋ณด๊ณ , ๊ตฌ๊ธ์ ๊ถ์ฅ์ฌํญ์ด ์ฌ์ฉ์์ ์ ํ์ ๋ฐ์๋ค์ด๊ณ ์ฑ์ ํ๋ฆฌํฐ๋ฅผ ์ ํ์ํค๋ ์ชฝ์ด๋ฉด ์ด๋ ๊ฒ ๊ฐ๋ ๊ฒ๋ ๋์์ง ์๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. ๋์ 5b์ ๊ณผ์ ์ ์ถ๊ฐํด์ผ ํ ๋ฏ ํ๋ค.
5b์ ๊ณผ์ ์ ์ํด ActivityCompat.shouldShowRequestPermissionRationale() ๋ฉ์๋๋ฅผ ๋ง๋ค์ด ๋์์์ ์์๋ค. ๊ธฐํ์์๊ฒ ๋งํด ์ฌ์ฉ์์๊ฒ ์๋ฆผ ๊ถํ์ด ํ์ํ ์ด์ ๋ฅผ ์ค๋ช ํ๋ ํ์ ์ ์ถ๊ฐํ๋ ๊ฒ์ ์ฌ๋์ผ๋ก ์ ์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ์ฃผ๊ฐํ์๋ฅผ ๋ค์ด๊ฐ๋ค.
3) ์๋ณต
์ฃผ๊ฐ ํ์์๊ฒ ํด๋น ๊ฑด์ ๋ํด์ ๊ณต์ ํ๊ณ , ํด๋น ์๋ฆผ ๊ถํ์ ์ฌ์ฉ์์๊ฒ ๊ฐ์ ๋ก ๋ฐ์์ผ ํ๋ค๋ ์๊ฒฌ์ด ๋์๋ค. (์๊ฒฌ์ ํ๊ฐ ๋ด๊ฒจ ์์๋ค. ๋ณธ์ธ์ด ์๊ฐํ๋ ๋๋ก ์ด๋ค์ง์ง ์์์ ๋ด๋ ํ. ์ค๋์ ์คํจํด์ ํ๋ฅผ ๋ด๋ ๊ฑธ ๋ฐ๋ ์ ์ฅ์ ํผ๊ณคํ๋ค.) ํด๋น ๊ถํ์ ๊ฐ์ ๋ก ๋ฐ์ง ์์ผ๋ฉด ์ฑ ํน์ฑ ์ CS๊ฐ ๋ง์ด ๋ค์ด์ฌ ๊ฑฐ๋ ์์ธก์ ๊ทธ ์๊ฒฌ์ ์๋ ดํ๊ธฐ๋ก ํ๋ค. (ํ๊ฐ ์๋๋ผ CS๊ฐ ๋ฌธ์ ๋ค. CS๋ ๋๋ง ํผ๊ณคํ๊ฒ ์๋๋ผ์ ํ์ฌ ์ฌ๋๋ค์ ์ํด์๋ผ๋ ๋ฐ์ ๊ฐ๋ฅํ CS๋ ์๋ฐฉํด์ผ ํ๋ค.) ๊ฒฝํ ์, ์ฌ์ฉ์๋ค์ ๋จ๋ง์ ๊ธฐ์ ์ ๋ํ ์ง์์ด ๊ฑฐ์ ์๋ค. ๊ฐ๋ฐ์ ์ ์ฅ์์๋ ์ฌ์ฉ์์ ํ๊ฒฝ์ด๋ ์ฌ์ฉ์์ ์ค์ ์ฌํญ ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ์ ์๋์์ธ๋ฐ, ์ฌ์ฉ์๋ ๊ฐ๋ฐ์ ํ์ ํ๋ค. ๊ทธ๋์ ๊ธฐํ์๊ฐ ์ ๋ง ์น์ ํ๊ฒ ๋ฌธ๊ตฌ๋ฅผ ์ถ๊ฐํด ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ์ง๋ง, ์ฌ์ฉ์๋ค์ ๊ธ์ ์ ์ ์ฝ๋๋ค.(์ฌ์ค ๋๋ ์ ์ ์ฝ๊ฒ ๋์ด์ ์ดํดํ๋ค.) ๋ถ๋ช ๋ค์์ ์ฌ์ฉ์๋ค์ ์์คํ ์๋ฆผ๊ณผ ํธ์๋ฅผ ๊ตฌ๋ถํ์ง ๋ชปํ ๊ฒ์ด๊ณ , ์ฑ ๋ด ์ค์ ์ฌํญ์์ ์๋ฒ์์ ๋ฐ๋ ํธ์ ๊ธฐ๋ฅ์ ONํ๊ณ , ๋จ๋ง์ ์๋ฆผ ๊ถํ์ OFF ํ ์ฑ CS ๋ฌธ์๊ฐ ๋ค์ด์ฌ ๊ฒ์ด ๋ปํ๋ค.
๊ธฐํ์๋ฅผ ๋ง๋ ๋ด๊ฐ CS ๋ฌธ์ ๋ฅผ ๋์ณค์์ ์ด์ผ๊ธฐํ๊ณ , ๊ฒฐ๊ตญ์ 1)์ โ โกโขโฃ์ ๋น์ทํ๊ฒ ๊ธฐํ์ด ๋ง๋ค์ด์ ธ ๋ฐ์๋์๋ค. ์ฌ์ฉ์๊ฐ ๋จ๋ง์ ์๋ฆผ ๊ถํ์ ONํ ๋๊น์ง, ์ฑ์ ์คํํ๋ฉด์ ๊ณ์ ์ฌ์ฉ์๋ฅผ ๊ท์ฐฎ๊ฒ ๊ตด ๊ฒ์ด๋ค. ์ด์ ๊ฒ์ฆ ๋จ๊ณ๊ฐ ๋จ์๋ค. ์ ๋์๊ฐ๊ธธ!
์ด ๊ธ์ ์ฐ๋ฉด์ ๋ค์ ์๊ฐํด๋ณด๋, ๊ณ ๊ฐ์ด ์ํ๋ ์๋น์ค๋ ์๋ฆผ ๊ถํ์ด ON ์ํ์ผ ๋ ์จ์ ํ ์ ๊ณต๋๋ ์๋น์ค๋ค. ๊ทธ๋, ์ด๋ ๊ฒ ๊ฐ๋ ๊ฒ ๋์์ง ์๋ค.
์๋๋ก์ด๋ ๋๋ฒจ๋กํผ์ค ๊ณต์ ๋ฌธ์ ๋ด์ฉ์ ๋๋ํ ๊ตฌ๊ธ ๊ฐ๋ฐ์๋ค์ด ์ฌ๋ฌ ๋ฐ์ดํฐ ์์ง, ์กฐ์ฌ, ๊ฒ์ฆ์ ํตํด ๊ถ์ฅ์ฌํญ์ ์๋ ค์คํ ๋ฐ, ์ค์ ๋ฌธ์ ํด๊ฒฐ ์ค ๋ฐ์ํ๋ ๊ฒ๊ธฐ ์ฝ์ง๋ ์๋ค๋ ๊ฑธ ๊ฒฝํํ๋ค. '์ ๋ต์ ์๋ค'๊ฐ ๋ง๋ค. ์ํฉ์ ๋ง์ถฐ ๋ฌธ์ ํด๊ฒฐ์ ์ต์ ์ ๋คํ์ ๋ฟ์ด๋ค.
'๋น ๊ตฌ๋ฉ ์ฑ์ฐ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Android] ํ๋ฉด ์ ํ ์ ๋๋ฉ์ด์ (0) | 2023.01.12 |
---|---|
[Android][Dialog] cancel / dismiss (0) | 2023.01.04 |
[Android][Facebook Login] ํ์ด์ค๋ถ ์ฑ ๋ฏธ ์ค์น ์ ๋ก๊ทธ์ธ ๋ถ๊ฐ ์ด์ (0) | 2022.12.29 |
[Android][RecyclerView][NestedScrollView] ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ ์ฑ๋ฅ ํฅ์ (0) | 2022.12.29 |
[Android][WebView] ์น๋ทฐ ๋งํฌ ์คํ ์ ์ธ๋ถ ๋ธ๋ผ์ฐ์ ์คํ ์ถ์ (1) | 2022.12.29 |