// ĠCopyright Ġ 2 0 2 0 ĠThe ĠFlutter Ġteam . ĠAll Ġrights Ġreserved . Ċ // ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġa ĠBSD - style Ġlicense Ġthat Ġcan Ġbe Ċ // Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ċ package Ġdev . flutter . platform _ channels Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . hardware . Sensor Ċ import Ġandroid . hardware . Sensor Manager Ċ import Ġio . flutter . embedding . android . Flutter Activity Ċ import Ġio . flutter . embedding . engine . Flutter Engine Ċ import Ġio . flutter . plugin . common . Basic Message Channel Ċ import Ġio . flutter . plugin . common . Event Channel Ċ import Ġio . flutter . plugin . common . Method Channel Ċ import Ġio . flutter . plugin . common . Standard Message Codec Ċ import Ġjava . io . InputStream Ċ Ċ class ĠMainActivity Ġ: ĠFlutter Activity () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġconfigure Flutter Engine ( flutter Engine : ĠFlutter Engine ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCreates Ġa ĠMethod Channel Ġas Ġsoon Ġas Ġthe ĠFlutter Engine Ġis Ġattached Ġto ĊĠĠĠĠĠĠĠ Ġ// Ġthe ĠActivity , Ġand Ġregisters Ġa ĠMethod Call Handler . ĠThe ĠMethod . set MethodCall Handler ĊĠĠĠĠĠĠĠ Ġ// Ġis Ġresponsible Ġto Ġregister Ġa ĠMethod Call Handler Ġto Ġhandle Ġthe Ġincoming Ġcalls . ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġcall Ġparameter Ġof ĠMethod Call Handler Ġhas Ġinformation Ġabout Ġthe Ġincoming Ġcall , ĊĠĠĠĠĠĠĠ Ġ// Ġlike Ġmethod Ġname , Ġand Ġarguments . ĠThe Ġresult Ġparameter Ġof ĠMethod Call Handler Ġis ĊĠĠĠĠĠĠĠ Ġ// Ġresponsible Ġto Ġsend Ġthe Ġresults Ġof Ġthe Ġcall . ĊĠĠĠĠĠĠĠ ĠMethod Channel ( flutter Engine . dart Executor , Ġ" method Channel Demo ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set MethodCall Handler Ġ{ Ġcall , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount : ĠInt ? Ġ= Ġcall . argument < Int >(" count ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error (" INVALID ĠARG UMENT ", Ġ" Value Ġof Ġcount Ġcannot Ġbe Ġnull ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( call . method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" increment " Ġ-> Ġresult . success ( count Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" decrement " Ġ-> Ġresult . success ( count Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġresult . not Implemented () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsensor M anger : ĠSensor Manager Ġ= Ġget System Service ( Context . SENSOR _ SERVICE ) Ġas ĠSensor Manager ĊĠĠĠĠĠĠĠ Ġval Ġaccel erometer Sensor : ĠSensor Ġ= Ġsensor M anger . getDefault Sensor ( Sensor . TYPE _ AC CEL ERO METER ) ĊĠĠĠĠĠĠĠ ĠEvent Channel ( flutter Engine . dart Executor , Ġ" event Channel Demo ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Stream Handler ( Accel erometer Stream Handler ( sensor M anger , Ġaccel erometer Sensor )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRegisters Ġa ĠMessage Handler Ġfor ĠBasic Message Channel Ġto Ġreceive Ġa Ġmessage Ġfrom ĠDart Ġand Ġsend ĊĠĠĠĠĠĠĠ Ġ// Ġimage Ġdata Ġin Ġreply . ĊĠĠĠĠĠĠĠ ĠBasic Message Channel ( flutter Engine . dart Executor , Ġ" platform Image Demo ", ĠStandard Message Codec ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage Handler Ġ{ Ġmessage , Ġreply Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( message Ġ== Ġ" getImage ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠinputStream : ĠInputStream Ġ= Ġassets . open (" eat _ new _ or le ans . jpg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreply . reply ( inputStream . read Bytes ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ