package Ġcom . y bj 3 6 6 5 3 3 . yy camera . base . utils Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . util . Log Ċ import Ġcom . t br uy elle . rx permissions 2 . Permission Ċ import Ġcom . t br uy elle . rx permissions 2 . Rx Permissions Ċ import Ġio . reactivex . functions . Consumer Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġsummer Ġon Ġ 1 7 - 1 0 - 3 1 . Ċ Ġ* ĠRx Permission Ġ æĿĥéĻĲ ç®¡çĲĨ å·¥åħ· ç±» éĽĨ æĪĲ Ċ Ġ* Ġhttp :// www . jian shu . com / p / c 8 a 3 0 2 0 0 e 6 b 2 Ċ Ġ* Ġ ãĢĬ å®ĺæĸ¹ æĿĥéĻĲ åĪĹè¡¨ ãĢĭ Ċ Ġ* Ġhttp :// developer . android . com / training / permissions / request ing . html Ċ ãĢĢ ãĢĢ http :// developer . android . com / guide / topics / security / permissions . html # normal - d angerous Ċ Ġ*/ Ċ Ċ // è¯·æ±Ĥ å¼ĢåĲ¯ æĿĥéĻĲ Ċ @ Suppress Lint (" Check Result ") Ċ fun Ġon Permissions ( activity : ĠActivity , Ġvar arg Ġpermission Src : ĠString ) Ġ{ ĊĊĠĠĠ Ġval Ġrx Permission Ġ= ĠRx Permissions ( activity ) ĊĠĠĠ Ġrx Permission . request Each (* permission Src ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( Consumer < Permission > Ġ{ Ġpermission Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission . gr anted Ġ-> Ġ// ĠçĶ¨æĪ· å·²ç»ı åĲĮ æĦı è¯¥ æĿĥéĻĲ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Rx Permission ", permission . name Ġ+ Ġ" Ġis Ġgranted .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission . should Show Request Permission R ationale Ġ-> Ġ// ĠçĶ¨æĪ· æĭ Ĵ ç»Ŀ äºĨ è¯¥ æĿĥéĻĲ ï¼Į æ²¡æľī éĢī ä¸Ń ãĢ İ ä¸į åĨį è¯¢ éĹ® ãĢ ı ï¼Ī Never Ġask Ġagain ï¼ī , éĤ£ä¹Ī ä¸ĭ æ¬¡ åĨį æ¬¡ åĲ¯åĬ¨ æĹ¶ ï¼Į è¿ĺ ä¼ļ æıĲç¤º è¯·æ±Ĥ æĿĥéĻĲ çļĦ å¯¹ è¯Ŀ æ¡Ĩ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Rx Permission ", permission . name Ġ+ Ġ" Ġis Ġdenied . ĠMore Ġinfo Ġshould Ġbe Ġprovided .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ// ĠçĶ¨æĪ· æĭ Ĵ ç»Ŀ äºĨ è¯¥ æĿĥéĻĲ ï¼Į å¹¶ä¸Ķ éĢī ä¸Ń ãĢ İ ä¸į åĨį è¯¢ éĹ® ãĢ ı ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Rx Permission ", permission . name Ġ+ Ġ" Ġis Ġdenied .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ Ċ } Ċ Ċ // åĪ¤æĸŃ æĺ¯åĲ¦ èİ·å¾Ĺ æĿĥéĻĲ Ċ @ Suppress Lint (" Check Result ") Ċ fun Ġget Info Permissions ( activity : ĠActivity , Ġpermission Src : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġvar Ġis Info Ġ= Ġfalse ĊĠĠĠ Ġval Ġrx Permission Ġ= ĠRx Permissions ( activity ) ĊĠĠĠ Ġrx Permission . request ( permission Src ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġgranted Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Info Ġ= Ġgranted ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġreturn Ġis Info Ċ } Ċ Ċ // Ġ å¿ħé¡» åľ¨ åĪĿå§ĭåĮĸ éĺ¶æ®µ è°ĥçĶ¨ , ä¾ĭå¦Ĥ onCreate () æĸ¹æ³ķ ä¸Ń Ċ // Rx View . click s ( findViewById ( R . id . enable Camera )) Ċ // . compose ( Rx Permissions . getInstance ( this ). ensure ( Manifest . permission . CAMERA )) Ċ // . subscribe ( gr anted Ġ-> Ġ{ Ċ // ĠĠĠ Ġ// Ġå½ĵ R . id . enable Camera è¢« çĤ¹åĩ» çļĦæĹ¶åĢĻ è§¦åıĳ èİ·åıĸ æĿĥéĻĲ Ċ // }); Ċ