package Ġcom . maz ait ing . permission test Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . maz ait ing . log . L Ċ import Ġcom . maz ait ing . permission . Permission Result Ċ import Ġcom . maz ait ing . permission . Permissions Ċ import Ġcom . maz ait ing . permission . util . Permission Setting Util Ċ import Ġcom . maz ait ing . permission . util . Permission Util Ċ import Ġcom . maz ait ing . permission . util . State Ċ Ċ /// Ġ å¾ħ çĶ³è¯· çļĦ æĿĥéĻĲ Ċ @ Permissions ([ Manifest . permission . WRITE _ EXTERNAL _ STORAGE , ĠManifest . permission . CAMERA ], ĠMainActivity . REQUEST _ CODE ) Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ/** Ġ æĿĥéĻĲ è¯·æ±Ĥ çłģ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠREQUEST _ CODE Ġ= Ġ 0 x 1 0 0 0 ĊĠ Ġ} ĊĠĠĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠ Ġ// Ġè¯·æ±Ĥ æĿĥéĻĲ ĊĠĠĠ ĠPermission Util . request Permission ( this ) ĊĠ Ġ} ĊĠĠĊĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < out ĠString >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠ Ġ// Ġ æĿĥéĻĲ å¤ĦçĲĨ ĊĠĠĠ ĠPermission Util . on Request Permissions Result ( this , Ġrequest Code , Ġpermissions , Ġgrant Results ) ĊĠ Ġ} ĊĠĠĊĠ Ġ/** ĊĠĠ Ġ* Ġ æĿĥéĻĲ è¯·æ±Ĥ ç»ĵæŀľ å¤ĦçĲĨ ĊĠĠ Ġ* Ġ@ param Ġstate Ġ æĿĥéĻĲ æİĪæĿĥ çĬ¶æĢģ ĊĠĠ Ġ* Ġ@ param Ġpermissions Ġå½ĵ çĬ¶æĢģ ä¸º Suc ceed æĹ¶ æĿĥéĻĲ åĪĹè¡¨ ä¸ºç©º ĊĠĠ Ġ*/ ĊĠ Ġ@ Permission Result ( REQUEST _ CODE ) ĊĠ Ġfun Ġpermission Result ( state : ĠState , Ġpermissions : ĠList < String > ?) Ġ{ ĊĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠ ĠState . DEN IED Ġ-> Ġ// Ġ åĨį æ¬¡ è¯·æ±Ĥ æĿĥéĻĲ ĊĠĠĠĠĠĠĠ ĠPermission Util . request Permission ( this ) ĊĠĠĠĠĠ ĠState . SUCCESS Ġ-> ĠToast . makeText ( this , Ġ" æĿĥéĻĲ çĶ³è¯· æĪĲåĬŁ !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠ ĠState . NOT _ SHOW Ġ-> Ġnot Show ( permissions !! ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠĠĊĠ Ġ/** ĊĠĠ Ġ* Ġ çĤ¹åĩ» ä¸į åĨį æıĲç¤º åĲİ å¹¶ æĭ Ĵ ç»Ŀ ĊĠĠ Ġ* Ġ@ param Ġpermissions Ġ æĿĥéĻĲ åĪĹè¡¨ ĊĠĠ Ġ*/ ĊĠ Ġprivate Ġfun Ġnot Show ( permissions : ĠList < String >) Ġ{ ĊĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠ Ġ// Ġ è¿Ńä»£ è¯»åıĸ æĿĥéĻĲ ĊĠĠĠ Ġpermissions . forEach Ġ{ Ġpermission Ġ-> ĊĠĠĠĠĠ ĠL . d (" MainActivity -- not Show -- $ permission ") ĊĠĠĠĠĠ Ġsb . append ("$ permission \ n ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġ è·³è½¬ åĪ° åºĶçĶ¨ è®¾ç½® çķĮéĿ¢ ĊĠĠĠ ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" åıĭ æĥħ æıĲç¤º ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage (" è¯· è·³è½¬ åĪ° è®¾ç½® çķĮéĿ¢ åĲĮ æĦı ä¸ĭéĿ¢ æĿĥéĻĲ ï¼ļ \ n " Ġ+ Ġsb . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" åĲĮ æĦı ") Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è·³è½¬ åĪ° åºĶçĶ¨ è®¾ç½® çķĮéĿ¢ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgo To App Setting ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Setting Util . goto Permission Activity ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button (" åħ³éĹŃ ") Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ³éĹŃ å½ĵåīį é¡µéĿ¢ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cancel able ( false ). show () ĊĠ Ġ} ĊĠĠ Ċ } Ċ