๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋นˆ ๊ตฌ๋ฉ ์ฑ„์šฐ๊ธฐ

[Android][Android 13][API Level 33] ๋Ÿฐํƒ€์ž„ ์•Œ๋ฆผ ๊ถŒํ•œ, ๊ทธ๋ฆฌ๊ณ  ๊ธฐํš ๋ณ€๊ฒฝ

์‹œ์ž‘. ์ด์Šˆ ๋ฐœ๊ฒฌ

Android 13 ๋‹จ๋ง์—์„œ ํ‘ธ์‹œ๋ฅผ ๋ฐ›๊ณ  ์‹œ์Šคํ…œ ์•Œ๋ฆผ์„ ๋„์šฐ์ง€ ๋ชปํ•˜๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์Œ์„ ์•Œ๊ฒŒ ๋๋‹ค.

 

์›์ธ ํŒŒ์•…

Android 13๋ถ€ํ„ฐ ์ƒˆ๋กœ ์„ค์น˜๋˜๋Š” ์•ฑ๋“ค์€ ์•Œ๋ฆผ ์ƒ์„ฑ ๊ถŒํ•œ์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค. ํ•ด๋‹น ์ด์Šˆ๋Š” ํ…Œ์ŠคํŠธ ๋‹จ๋ง์ด Android 13 ๋‹จ๋ง์—, ํ…Œ์ŠคํŠธ ์•ฑ์ด ์‹ ๊ทœ๋กœ ์„ค์น˜๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.

Android 12๋Š” ๊ธฐ๋ณธ์œผ๋กœ ์•Œ๋ฆผ ์ƒ์„ฑ ๊ถŒํ•œ์ด ์žˆ์–ด์„œ ์ด๋Ÿฐ ์ด์Šˆ๋ฅผ ๋งŒ๋‚  ์ผ์ด ์—†์—ˆ๋‹ค. 

 

์ •๋ง ์ž˜ ์„ค๋ช…ํ•ด์ฃผ์‹  ๊ธ€

https://codechacha.com/ko/android-13-notification-permission/

 

Android 13์—์„œ Notification ๊ถŒํ•œ ์š”์ฒญ, ์•Œ๋ฆผ ๋„์šฐ๊ธฐ

Android 13์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์œผ๋กœ, POST_NOTIFICATIONS ๊ถŒํ•œ์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ฑ ๋™์ž‘์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Target API 33 ์ด์ƒ์ธ App์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด AndroidManifest์— POST_NOTIFICATIONS ๊ถŒํ•œ

codechacha.com

๊ณต์‹๋ฌธ์„œ

https://developer.android.com/about/versions/13/changes/notification-permission?hl=ko 

 

์•Œ๋ฆผ ๋Ÿฐํƒ€์ž„ ๊ถŒํ•œ  |  Android ๊ฐœ๋ฐœ์ž  |  Android Developers

์•Œ๋ฆผ ๋Ÿฐํƒ€์ž„ ๊ถŒํ•œ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”. Android 13(API ์ˆ˜์ค€ 33)์—์„œ๋Š” ์•ฑ์—์„œ ์˜ˆ์™ธ ์—†๋Š” ์•Œ๋ฆผ์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋Ÿฐํƒ€์ž„ ๊ถŒํ•œ POST_

developer.android.com

์•ฑ์€ 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 

 

์•ฑ ๊ถŒํ•œ ์š”์ฒญ  |  Android ๊ฐœ๋ฐœ์ž  |  Android Developers

์•ฑ ๊ถŒํ•œ ์š”์ฒญ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”. ๋ชจ๋“  Android ์•ฑ์€ ์•ก์„ธ์Šค๊ฐ€ ์ œํ•œ๋œ ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์•ฑ์ด ์ž์ฒด ์ƒŒ๋“œ๋ฐ•์Šค ๋ฐ–์— ์žˆ๋Š” ๋ฆฌ

developer.android.com

 

๊ทธ๋ฆผ 1.  Android์—์„œ ๋Ÿฐํƒ€์ž„ ๊ถŒํ•œ์„ ์„ ์–ธํ•˜๊ณ  ์š”์ฒญํ•˜๋Š” ์›Œํฌํ”Œ๋กœ๋ฅผ ๋ณด์—ฌ ์ฃผ๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ

๊ณต์‹๋ฌธ์„œ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ถŒํ•œ ์š”์ฒญ ์›Œํฌํ”Œ๋กœ๋ฅผ ์ฐพ์•„๋ดค๋‹ค.

๊ทธ๋ฆผ1์˜ 8b๋ฒˆ ์ˆœ์„œ๋ฅผ ๋ณด๊ณ , ๊ตฌ๊ธ€์˜ ๊ถŒ์žฅ์‚ฌํ•ญ์ด ์‚ฌ์šฉ์ž์˜ ์„ ํƒ์„ ๋ฐ›์•„๋“ค์ด๊ณ  ์•ฑ์˜ ํ€„๋ฆฌํ‹ฐ๋ฅผ ์ €ํ•˜์‹œํ‚ค๋Š” ์ชฝ์ด๋ฉด ์ด๋ ‡๊ฒŒ ๊ฐ€๋Š” ๊ฒƒ๋„ ๋‚˜์˜์ง€ ์•Š๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋Œ€์‹  5b์˜ ๊ณผ์ •์€ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ๋“ฏ ํ–ˆ๋‹ค.

5b์˜ ๊ณผ์ •์„ ์œ„ํ•ด ActivityCompat.shouldShowRequestPermissionRationale() ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋†“์•˜์Œ์„ ์•Œ์•˜๋‹ค. ๊ธฐํš์ž์—๊ฒŒ ๋งํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆผ ๊ถŒํ•œ์ด ํ•„์š”ํ•œ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ํŒ์—…์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์Šฌ๋ž™์œผ๋กœ ์ œ์•ˆํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ”๋กœ ์ฃผ๊ฐ„ํšŒ์˜๋ฅผ ๋“ค์–ด๊ฐ”๋‹ค.

 

3) ์›๋ณต

์ฃผ๊ฐ„ ํšŒ์˜์—๊ฒŒ ํ•ด๋‹น ๊ฑด์— ๋Œ€ํ•ด์„œ ๊ณต์œ ํ–ˆ๊ณ , ํ•ด๋‹น ์•Œ๋ฆผ ๊ถŒํ•œ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ•์ œ๋กœ ๋ฐ›์•„์•ผ ํ•œ๋‹ค๋Š” ์˜๊ฒฌ์ด ๋‚˜์™”๋‹ค. (์˜๊ฒฌ์— ํ™”๊ฐ€ ๋‹ด๊ฒจ ์žˆ์—ˆ๋‹ค. ๋ณธ์ธ์ด ์ƒ๊ฐํ•˜๋Š” ๋Œ€๋กœ ์ด๋ค„์ง€์ง€ ์•Š์•„์„œ ๋‚ด๋Š” ํ™”. ์„ค๋“์— ์‹คํŒจํ•ด์„œ ํ™”๋ฅผ ๋‚ด๋Š” ๊ฑธ ๋ฐ›๋Š” ์ž…์žฅ์€ ํ”ผ๊ณคํ•˜๋‹ค.) ํ•ด๋‹น ๊ถŒํ•œ์„ ๊ฐ•์ œ๋กœ ๋ฐ›์ง€ ์•Š์œผ๋ฉด ์•ฑ ํŠน์„ฑ ์ƒ CS๊ฐ€ ๋งŽ์ด ๋“ค์–ด์˜ฌ ๊ฑฐ๋ž€ ์˜ˆ์ธก์— ๊ทธ ์˜๊ฒฌ์„ ์ˆ˜๋ ดํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. (ํ™”๊ฐ€ ์•„๋‹ˆ๋ผ CS๊ฐ€ ๋ฌธ์ œ๋‹ค. CS๋Š” ๋‚˜๋งŒ ํ”ผ๊ณคํ•œ๊ฒŒ ์•„๋‹ˆ๋ผ์„œ ํšŒ์‚ฌ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด์„œ๋ผ๋„ ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ CS๋Š” ์˜ˆ๋ฐฉํ•ด์•ผ ํ•œ๋‹ค.) ๊ฒฝํ—˜ ์ƒ, ์‚ฌ์šฉ์ž๋“ค์€ ๋‹จ๋ง์˜ ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ง€์‹์ด ๊ฑฐ์˜ ์—†๋‹ค. ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ์‚ฌ์šฉ์ž์˜ ํ™˜๊ฒฝ์ด๋‚˜ ์‚ฌ์šฉ์ž์˜ ์„ค์ • ์‚ฌํ•ญ ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ์ •์ƒ๋™์ž‘์ธ๋ฐ, ์‚ฌ์šฉ์ž๋Š” ๊ฐœ๋ฐœ์ž ํƒ“์„ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐํš์ž๊ฐ€ ์ •๋ง ์นœ์ ˆํ•˜๊ฒŒ ๋ฌธ๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ์ง€๋งŒ, ์‚ฌ์šฉ์ž๋“ค์€ ๊ธ€์„ ์ž˜ ์•ˆ ์ฝ๋Š”๋‹ค.(์‚ฌ์‹ค ๋‚˜๋„ ์ž˜ ์•ˆ ์ฝ๊ฒŒ ๋˜์–ด์„œ ์ดํ•ดํ•œ๋‹ค.) ๋ถ„๋ช… ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๋“ค์€ ์‹œ์Šคํ…œ ์•Œ๋ฆผ๊ณผ ํ‘ธ์‹œ๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•  ๊ฒƒ์ด๊ณ , ์•ฑ ๋‚ด ์„ค์ • ์‚ฌํ•ญ์—์„œ ์„œ๋ฒ„์—์„œ ๋ฐ›๋Š” ํ‘ธ์‹œ ๊ธฐ๋Šฅ์€ ONํ•˜๊ณ , ๋‹จ๋ง์˜ ์•Œ๋ฆผ ๊ถŒํ•œ์€ OFF ํ•œ ์ฑ„ CS ๋ฌธ์˜๊ฐ€ ๋“ค์–ด์˜ฌ ๊ฒƒ์ด ๋ป”ํ•˜๋‹ค. 

 

๊ธฐํš์ž๋ฅผ ๋งŒ๋‚˜ ๋‚ด๊ฐ€ CS ๋ฌธ์ œ๋ฅผ ๋†“์ณค์Œ์„ ์ด์•ผ๊ธฐํ•˜๊ณ , ๊ฒฐ๊ตญ์—” 1)์˜ โ‘ โ‘กโ‘ขโ‘ฃ์™€ ๋น„์Šทํ•˜๊ฒŒ ๊ธฐํš์ด ๋งŒ๋“ค์–ด์ ธ ๋ฐ˜์˜๋˜์—ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋‹จ๋ง์˜ ์•Œ๋ฆผ ๊ถŒํ•œ์„ ONํ•  ๋•Œ๊นŒ์ง€, ์•ฑ์€ ์‹คํ–‰ํ•˜๋ฉด์„œ ๊ณ„์† ์‚ฌ์šฉ์ž๋ฅผ ๊ท€์ฐฎ๊ฒŒ ๊ตด ๊ฒƒ์ด๋‹ค. ์ด์ œ ๊ฒ€์ฆ ๋‹จ๊ณ„๊ฐ€ ๋‚จ์•˜๋‹ค. ์ž˜ ๋Œ์•„๊ฐ€๊ธธ!

 

์ด ๊ธ€์„ ์“ฐ๋ฉด์„œ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ, ๊ณ ๊ฐ์ด ์›ํ•˜๋Š” ์„œ๋น„์Šค๋Š” ์•Œ๋ฆผ ๊ถŒํ•œ์ด ON ์ƒํƒœ์ผ ๋•Œ ์˜จ์ „ํžˆ ์ œ๊ณต๋˜๋Š” ์„œ๋น„์Šค๋‹ค. ๊ทธ๋ž˜, ์ด๋ ‡๊ฒŒ ๊ฐ€๋Š” ๊ฒŒ ๋‚˜์˜์ง€ ์•Š๋‹ค.


์•ˆ๋“œ๋กœ์ด๋“œ ๋””๋ฒจ๋กœํผ์Šค ๊ณต์‹ ๋ฌธ์„œ ๋‚ด์šฉ์€ ๋˜‘๋˜‘ํ•œ ๊ตฌ๊ธ€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ์กฐ์‚ฌ, ๊ฒ€์ฆ์„ ํ†ตํ•ด ๊ถŒ์žฅ์‚ฌํ•ญ์„ ์•Œ๋ ค์ค„ํ…๋ฐ, ์‹ค์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ค‘ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ๊ธฐ ์‰ฝ์ง€๋Š” ์•Š๋‹ค๋Š” ๊ฑธ ๊ฒฝํ—˜ํ–ˆ๋‹ค. '์ •๋‹ต์€ ์—†๋‹ค'๊ฐ€ ๋งž๋‹ค. ์ƒํ™ฉ์— ๋งž์ถฐ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์ตœ์„ ์„ ๋‹คํ–ˆ์„ ๋ฟ์ด๋‹ค.