package Ġcom . nice . base library . base . utils Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . hardware . Sensor Ċ import Ġandroid . hardware . Sensor Manager Ċ import Ġandroid . net . Uri Ċ import Ġandroid . net . wifi . Wifi Manager Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Environment Ċ import Ġandroid . os . Stat Fs Ċ import Ġandroid . tele phony . Tele phony Manager Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . text . format . Formatter Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ ç³»ç»Ł çļĦ å·¥åħ· æĸ¹æ³ķ éĽĨ Ċ Ġ* Ġ@ author ĠJ Plus Ċ Ġ* Ġ@ date Ġ 2 0 1 9 / 9 / 1 8 . Ċ Ġ*/ Ċ /** Ċ Ġ* Ġèİ·åıĸ å½ĵåīį æīĭæľº çļĦ cpu æŀ¶æŀĦ Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġget Cpu ABI (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) ĠArrays . toString ( Build . SUPPORTED _ AB IS ) Ġelse ĠBuild . CPU _ ABI Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ å½ĵåīį æīĭæľº Android ĠAPI çīĪæľ¬ Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġget Api Level (): ĠInt Ġ{ ĊĠĠĠ Ġreturn ĠBuild . VERSION . SDK _ INT Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ æīĭæľº Android Ġ çīĪæľ¬ Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġget Os Level (): ĠString Ġ{ ĊĠĠĠ Ġreturn ĠBuild . VERSION . RELEASE Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ å½ĵåīį æīĭæľº è®¾å¤ĩ ä¿¡æģ¯ Ċ Ġ* Ġ@ return Ġ çĶŁäº§ åİĤ å®¶ _ cpu åŀĭ åı· _ åĵģ çīĮ Ċ Ġ*/ Ċ fun Ġget DeviceInfo (): ĠString Ġ{ ĊĠĠĠ Ġreturn ĠBuild . MAN U FACT UR ER Ġ+ Ġ"_" Ġ+ ĠBuild . B RAND Ġ+ Ġ"_" Ġ+ ĠBuild . MODEL Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ è®¾å¤ĩ mac åľ°åĿĢ Ċ Ġ* Ġ< p > éľĢè¦ģ åľ¨ manifest ä¸Ń å£°æĺİ æĿĥéĻĲ {@ link Ġandroid . Manifest . permission . ACCESS _ WIFI _ STATE }</ p > Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ @ Suppress Lint (" Missing Permission ") Ċ fun ĠContext . get Mac Address (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ( this . application Context . getSystem Service ( Context . WIFI _ SERVICE ) Ġas ĠW ifi Manager ). connection Info . mac Address Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ åĵģ çīĮ åĲį Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġget Device Product (): ĠString Ġ{ ĊĠĠĠ Ġreturn ĠBuild . PRODUCT Ċ } Ċ Ċ /** Ċ Ġ* Ġ Ġèİ·åıĸ åı¯çĶ¨ æĺ¾ç¤º å° º å¯ ¸ çļĦ ç»Ŀ å¯¹ å®½åº¦ ï¼Ī ä»¥ åĥı ç´ł ä¸º åįķä½į ï¼ī Ċ Ġ* Ġ Ġ@ return Ċ Ġ*/ Ċ Ċ fun ĠContext . get Screen Width (): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġthis . resources . display Metrics . width Pixels Ċ } Ċ Ċ /** Ċ Ġ* Ġ Ġèİ·åıĸ åı¯çĶ¨ æĺ¾ç¤º å° º å¯ ¸ çļĦ ç»Ŀ å¯¹ é«ĺåº¦ ï¼Ī ä»¥ åĥı ç´ł ä¸º åįķä½į ï¼ī Ċ Ġ* Ġ Ġ@ return Ċ Ġ*/ Ċ fun ĠContext . get Screen Height (): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġthis . resources . display Metrics . height Pixels Ċ } Ċ Ċ /** Ċ Ġ* ĠåĪ¤æĸŃ Ġsd card Ġæĺ¯åĲ¦ åŃĺåľ¨ Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġis Exist SD Card (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn ĠEnvironment . get External Storage State () Ġ== ĠEnvironment . MEDIA _ MOUNT ED Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ å·² å®īè£ħ A pk æĸĩä»¶çļĦ æºĲ A pk æĸĩä»¶ Ċ Ġ* Ġ å¦Ĥ ï¼ļ / data / app / com . s ina . weibo . apk Ċ Ġ* Ċ Ġ* Ġ@ param ĠpackageName Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun ĠContext . get A pk Source ( packageName : ĠString ): ĠString ? Ġ{ ĊĠĠĠ Ġif Ġ( TextUtils . isEmpty ( packageName )) Ġreturn Ġnull ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Info Ġ= Ġthis . package Manager . getApplication Info ( packageName , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġapp Info . source Dir ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġ Ġæł¹æį® åĮħ åĲį è·³è½¬ åĪ° ç¬¬ä¸ī æĸ¹ åºĶçĶ¨ ï¼Į ä¸į éĩįå¤į åĲ¯åĬ¨ Ċ Ġ* Ġ Ġ@ param ĠpackageName Ċ Ġ* Ġ Ġ@ return Ċ Ġ*/ Ċ fun ĠContext . start App By PackageName ( packageName : ĠString ) Ġ{ ĊĠĠĠ ĠIntent ( Intent . ACTION _ MAIN ). let Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmain Act Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġit . add Category ( Intent . CATEGORY _ LA UNCH ER ) ĊĠĠĠĠĠĠĠ Ġit . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ RESET _ TASK _ IF _ NE EDED Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġthis . package Manager . query Intent Activities ( it , ĠPackage Manager . MATCH _ DEFAULT _ ONLY ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġlist . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġlist [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( info . activity Info . packageName Ġ== ĠpackageName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Act Ġ= Ġinfo . activity Info . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( main Act . isEmpty ()) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġit . component Ġ= ĠComponent Name ( packageName , Ġmain Act ) ĊĠĠĠĠĠĠĠ Ġthis . startActivity ( it ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġå®īè£ħ apk Ċ Ġ* Ġ@ param Ġpath Ġapk æĸĩä»¶ è·¯å¾Ħ Ċ Ġ* Ġ@ param Ġauthority Ġfile Provider çļĦ authority Ċ Ġ*/ Ċ fun ĠActivity . install A pk ( path : ĠString , Ġauthority : ĠString , Ġrequest Code : Int ) Ġ{ ĊĠĠĠ ĠIntent ( Intent . ACTION _ VIEW ). let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . flags Ġ= ĠIntent . FLAG _ GRANT _ READ _ URI _ PERMISSION Ġor ĠIntent . FLAG _ GRANT _ WRITE _ URI _ PERMISSION ĊĠĠĠĠĠĠĠ Ġit . add Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ); ĊĠĠĠĠĠĠĠ Ġit . setData And Type ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . path 2 Uri ( path , Ġauthority ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / vnd . android . package - archive " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . startActivity For Result ( it , Ġrequest Code ); ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġ Ġ åį ¸ è½½ ç¬¬ä¸ī æĸ¹ åºĶçĶ¨ Ċ Ġ* Ġ Ġ@ param ĠpackageName Ġ åºĶçĶ¨ åĮħ åĲį Ċ Ġ* Ġ Ġ@ return Ċ Ġ*/ Ċ fun ĠContext . delete App By PackageName ( packageName : ĠString ) Ġ{ ĊĠĠĠ ĠIntent ( Intent . ACTION _ DELETE ). let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . data Ġ= ĠUri . parse (" package :$ packageName ") ĊĠĠĠĠĠĠĠ Ġit . add Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( it ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ ç³»ç»Ł å·² æľīçļĦ ä¼ł æĦŁ åĻ¨ Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun ĠContext . get Support Sensors (): ĠList < Sensor > Ġ{ ĊĠĠĠ Ġval Ġsensor Manager Ġ= Ġthis . getSystem Service ( Context . SENSOR _ SERVICE ) Ġas ĠSensor Manager ĊĠĠĠ Ġreturn Ġsensor Manager . get Sensor List ( Sensor . TYPE _ ALL ) Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ cpu è¯¦ç»Ĩ ä¿¡æģ¯ Ċ Ġ* Ġ@ return Ġcpu ä¿¡æģ¯ Ċ Ġ*/ Ċ fun Ġget Cpu Info (): ĠString Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= Ġ"" ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠarrayOf ("/ system / bin / cat ", Ġ"/ proc / cpu info ") ĊĠĠĠĠĠĠĠ Ġval Ġcmd Ġ= ĠProcess Builder (* args ) ĊĠĠĠĠĠĠĠ Ġval Ġprocess Ġ= Ġcmd . start () ĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuffer () ĊĠĠĠĠĠĠĠ Ġvar Ġread Line Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġresponse Reader Ġ= ĠBufferedReader ( InputStream Reader ( process . inputStream , Ġ" utf - 8 ")) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( response Reader . readLine (). also Ġ{ Ġread Line Ġ= Ġit Ġ} Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( readLine ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġresponse Reader . close () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġsb . toString (). toLowerCase ( Locale . ROOT ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ è¿Ĳ èĲ¥ åķĨ åĲįç§° Ċ Ġ* Ġ@ return Ġ è¿Ĳ èĲ¥ åķĨ åĲįç§° Ċ Ġ*/ Ċ fun ĠContext . get Operator Name Android (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ( this . getSystem Service ( Context . TELE PHONY _ SERVICE ) Ġas ĠTele phony Manager ). network Operator Name Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ æīĭæľº åĨħåŃĺ åĴĮ SD åį¡ åĨħåŃĺ Ċ Ġ* Ġ@ param Ġis Card Ġæĺ¯åĲ¦ æĺ¯ SD åį¡ Ċ Ġ*/ Ċ fun ĠContext . get Rom Total Size ( is Card : ĠBoolean ): ĠString ? Ġ{ ĊĠĠĠ Ġvar Ġpath Ġ= ĠEnvironment . getData Directory () ĊĠĠĠ Ġif Ġ( Environment . get External Storage State () Ġ== ĠEnvironment . MEDIA _ MOUNT ED ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Card ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= ĠEnvironment . get External Storage Directory () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġstat Fs Ġ= ĠStat Fs ( path . path ) ĊĠĠĠĠĠĠĠ Ġreturn ĠFormatter . format FileSize ( this , Ġstat Fs . block Size Long Ġ* Ġstat Fs . block Count Long ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġnull Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ åı¯çĶ¨ åĨħåŃĺ å¤§å°ı Ċ Ġ* Ġ@ param Ġis Card Ġæĺ¯åĲ¦ SD åį¡ Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun ĠContext . get Available Size ( is Card : ĠBoolean ): ĠString ? Ġ{ ĊĠĠĠ Ġvar Ġpath Ġ= ĠEnvironment . getData Directory () ĊĠĠĠ Ġif Ġ( Environment . get External Storage State () Ġ== ĠEnvironment . MEDIA _ MOUNT ED ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Card ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= ĠEnvironment . get External Storage Directory () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġstat Fs Ġ= ĠStat Fs ( path . path ) ĊĠĠĠĠĠĠĠ Ġreturn ĠFormatter . format FileSize ( this , Ġstat Fs . block Size Long Ġ* Ġstat Fs . available Blocks Long ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġnull Ċ }