import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . os . Build Ċ import Ġcom . we ex box . core . We ex Box Engine Ċ Ċ object ĠVersion Util Ġ{ ĊĊĠĠĠ Ġval Ġhas J el ly Bean MR 2 Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 2 ĊĊĠĠĠ Ġval Ġhas H oney comb Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . H ONE Y COMB ĊĊĠĠĠ Ġval Ġhas J el ly Bean Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . J EL LY _ BE AN ĊĊĠĠĠ Ġval Ġhas J el ly Bean MR 1 Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 1 ĊĊĠĠĠ Ġval Ġhas Kit kat Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . KIT K AT ĊĊĠĠĠ Ġval Ġhas L ol lip op Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ĊĊĠĠĠ Ġval Ġhas M Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ çīĪæľ¬ åı· ĊĊĠĠĠĠ Ġ* Ġ@ return Ġå½ĵåīį åºĶçĶ¨ çļĦ çīĪæľ¬ åı· ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġapp Version Name : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= ĠWe ex Box Engine . application . package Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġmanager . get Package Info ( We ex Box Engine . application . packageName , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġinfo . version Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġversion ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ¯ Ķ è¾ĥ çīĪæľ¬ åı· çļĦ å¤§å°ı , åīį èĢħ å¤§ åĪĻ è¿ĶåĽŀ ä¸Ģä¸ª æŃ£ æķ° , åĲİ èĢħ å¤§ è¿ĶåĽŀ ä¸Ģä¸ª è´Ł æķ° , çĽ¸ çŃī åĪĻ è¿ĶåĽŀ 0 ĊĊĠĠĠĠ Ġ* Ġ@ param Ġversion 1 ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġversion 2 ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcompare Version ( v 1 : ĠString ?, Ġv 2 : ĠString ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion 1 Ġ= Ġv 1 Ġ?: Ġ" 0 " ĊĠĠĠĠĠĠĠ Ġval Ġversion 2 Ġ= Ġv 2 Ġ?: Ġ" 0 " ĊĠĠĠĠĠĠĠ Ġval Ġversion Array 1 : ĠList < String > Ġ= Ġversion 1 . split (".") // kotlin Ġä¸Ń ä¸įéľĢè¦ģ æŃ£ åĪĻ åĮ¹éħį ï¼Į ä¸į çĶ¨ å¦Ĥ æŃ¤ " \\ ." ï¼Ľ ĊĠĠĠĠĠĠĠ Ġval Ġversion Array 2 : ĠList < String > Ġ= Ġversion 2 . split (".") ĊĠĠĠĠĠĠĠ Ġvar Ġidx Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġmin Length Ġ= ĠMath . min ( version Array 1 . size , Ġversion Array 2 . size )// åıĸ æľĢå°ı éķ¿åº¦ åĢ¼ ĊĠĠĠĠĠĠĠ Ġvar Ġdiff Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( idx Ġ< Ġmin Length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Ġ= Ġversion Array 1 [ idx ]. length Ġ- Ġversion Array 2 [ idx ]. length // åħĪ æ¯Ķè¾ĥ éķ¿åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( diff Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Ġ= Ġversion Array 1 [ idx ]. compareTo ( version Array 2 [ idx ]) // åĨį æ¯Ķè¾ĥ åŃĹç¬¦ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( diff Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ++ idx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ å·²ç»ı åĪĨ åĩº å¤§å°ı ï¼Į åĪĻ çĽ´æİ¥ è¿ĶåĽŀ ï¼Į å¦Ĥæŀľ æľª åĪĨ åĩº å¤§å°ı ï¼Į åĪĻ åĨį æ¯Ķè¾ĥ ä½į æķ° ï¼Į æľī åŃĲ çīĪæľ¬ çļĦ ä¸º å¤§ ï¼Ľ ĊĠĠĠĠĠĠĠ Ġdiff Ġ= Ġif Ġ( diff Ġ!= Ġ 0 ) Ġdiff Ġelse Ġversion Array 1 . size Ġ- Ġversion Array 2 . size ĊĠĠĠĠĠĠĠ Ġreturn Ġdiff ĊĠĠĠ Ġ} Ċ }