package Ġcom . le ess y . OCR Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġcom . baidu . ocr . sdk . OCR Ċ import Ġcom . baidu . ocr . sdk . On Result Listener Ċ import Ġcom . baidu . ocr . sdk . exception . O CRE rror Ċ import Ġcom . baidu . ocr . sdk . model .* Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . le ess y . Kotlin Extension . onClick Ċ import Ġcom . le ess y . cool kotlin . Base Activity Ċ import Ġcom . le ess y . cool kotlin . R Ċ import Ġkotlinx . android . synt hetic . main . activity _ ocr .* Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . io . File Ċ Ċ class ĠO cr Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ ocr ) ĊĠĠĠĠĠĠĠ Ġinit ocr . onClick Ġ{ Ġinit O cr () Ġ} ĊĊĠĠĠĠĠĠĠ Ġoc rid card . onClick Ġ{ Ġoc rid card () Ġ} ĊĠĠĠĠĠĠĠ Ġoc rc ar . onClick Ġ{ Ġocr Car () Ġ} ĊĠĠĠĠĠĠĠ Ġpassport . onClick Ġ{ Ġpassport () Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// æĬ¤ çħ§ ĊĠĠĠ Ġfun Ġpassport () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ é© ¾ é© ¶ è¯ģ è¯ĨåĪ« åıĤæķ° è®¾ç½® ĊĠĠĠĠĠĠĠ Ġval Ġparam Ġ= ĠO cr Request Params () ĊĠĠĠĠĠĠĠ Ġparam . image File Ġ= ĠFile ("/ storage / em ulated / 0 / hu . jpg ") Ċ // ĠĠĠĠĠĠĠ Ġparam . put Param (" image Quality ", Ġ" 8 5 ") ĊĠĠĠĠĠĠĠ Ġparam . put Param (" detect _ direction ", Ġtrue ) ĊĊĠĠĠĠĠĠĠ ĠO CR . getInstance ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. re cognize Passport ( param , Ġobject Ġ: ĠOn Result Listener < O cr Response Result > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Result ( result : ĠO cr Response Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( local ClassName , Ġ" oc rid card Ġæķ°æį® Ġ Ġ" Ġ+ Ġresult . json Res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext . text Ġ= Ġ" æĬ¤ çħ§ è¯ĨåĪ« ç»ĵæŀľ Ġ" Ġ+ Ġresult . json Res ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠO CRE rror ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( local ClassName , Ġ" Ġæķ°æį® ĠonError Ġ" Ġ+ Ġerror ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġocr Car () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ é© ¾ é© ¶ è¯ģ è¯ĨåĪ« åıĤæķ° è®¾ç½® ĊĠĠĠĠĠĠĠ Ġval Ġparam Ġ= ĠO cr Request Params () ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® image åıĤæķ° ĊĠĠĠĠĠĠĠ Ġparam . image File Ġ= ĠFile ("/ storage / em ulated / 0 / t img 2 . jpg ") ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® åħ¶ä»ĸ åıĤæķ° ĊĠĠĠĠĠĠĠ Ġparam . put Param (" detect _ direction ", Ġtrue ) ĊĊĠĠĠĠĠĠĠ ĠO CR . getInstance ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. re cognize D riving License ( param , Ġobject Ġ: ĠOn Result Listener < O cr Response Result > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Result ( result : ĠO cr Response Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è°ĥçĶ¨ æĪĲåĬŁ ï¼Į è¿ĶåĽŀ O cr Response Result å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( local ClassName , Ġ" oc rid card Ġæķ°æį® Ġ Ġ" Ġ+ Ġresult . json Res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext . text Ġ= Ġresult . json Res ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠO CRE rror ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è°ĥçĶ¨ å¤±è´¥ ï¼Į è¿ĶåĽŀ O CRE rror å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( local ClassName , Ġ" Ġæķ°æį® ĠonError Ġ" Ġ+ Ġerror ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġoc rid card () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ èº«ä»½ è¯ģ è¯ĨåĪ« åıĤæķ° è®¾ç½® ĊĠĠĠĠĠĠĠ Ġval Ġparam Ġ= ĠID Card Params () ĊĠĠĠĠĠĠĠ Ġparam . image File Ġ= ĠFile ("/ storage / em ulated / 0 / DC IM / Camera / IMG _ 2 0 1 9 1 1 1 5 _ 1 6 0 1 1 2 . jpg ") ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® èº«ä»½ è¯ģ æŃ£ åıį éĿ¢ ĊĠĠĠĠĠĠĠ Ġparam . id Card Side Ġ= ĠID Card Params . ID _ CARD _ SIDE _ FRONT ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® æĸ¹åĲĳ æ£Ģæµĭ ĊĠĠĠĠĠĠĠ Ġparam . is Detect Direction Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® åĽ¾åĥı åıĤæķ° åİĭç¼© è´¨ éĩı 0 - 1 0 0 , Ġ è¶Ĭ å¤§ åĽ¾åĥı è´¨ éĩı è¶Ĭ å¥½ ä½Ĩæĺ¯ è¯·æ±Ĥ æĹ¶éĹ´ è¶Ĭ éķ¿ ãĢĤ Ġä¸į è®¾ç½® åĪĻ é»ĺè®¤ åĢ¼ä¸º 2 0 ĊĠĠĠĠĠĠĠ Ġparam . image Quality Ġ= Ġ 8 5 ĊĊĠĠĠĠĠĠĠ Ġ// Ġ è°ĥçĶ¨ èº«ä»½ è¯ģ è¯ĨåĪ« æľįåĬ¡ ĊĠĠĠĠĠĠĠ ĠO CR . getInstance ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. re cognize ID Card ( param , Ġobject Ġ: ĠOn Result Listener < ID Card Result > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Result ( result : ĠID Card Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è°ĥçĶ¨ æĪĲåĬŁ ï¼Į è¿ĶåĽŀ ID Card Result å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( local ClassName , Ġ" oc rid card Ġæķ°æį® Ġ Ġ" Ġ+ Ġresult . json Res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext . text Ġ= Ġresult . json Res ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠO CRE rror ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è°ĥçĶ¨ å¤±è´¥ ï¼Į è¿ĶåĽŀ O CRE rror å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( local ClassName , Ġ" oc rid card Ġæķ°æį® ĠonError Ġ" Ġ+ Ġerror ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit O cr () Ġ{ ĊĠĠĠĠĠĠĠ ĠO CR . getInstance ( application Context ). is Auto Cache Token Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠO CR . getInstance ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. init AccessToken With Ak Sk ( object Ġ: ĠOn Result Listener < AccessToken > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Result ( result : ĠAccess Token ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è°ĥçĶ¨ æĪĲåĬŁ ï¼Į è¿ĶåĽŀ AccessToken å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġresult . accessToken ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( local ClassName , Ġ" init O cr ĠĠ Ġ" Ġ+ Ġtoken ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠO CRE rror ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è°ĥçĶ¨ å¤±è´¥ ï¼Į è¿ĶåĽŀ O CRE rror åŃĲ ç±» SDK Error å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( local ClassName , Ġ" init O cr ĠĠ Ġ" Ġ+ Ġerror ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġapplication Context , Ġ" xh Z 7 s NB CF CF SG a 9 9 DF Xt 5 Cr 7 ", Ġ" c Ud wj k 1 eP 0 2 mu RM 3 q 0 Ti 8 f 8 fp q Gl m 8 Ar ") ĊĠĠĠ Ġ} Ċ } Ċ