make-scanner-on-android
تاریخ انتشار :     19 دی 1397

در این مقاله قصد داریم ساخت بارکدخوان در اندروید را با استفاده از یک کتابخانه ی قدرتمند آموزش دهیم.

ابتدا کتابخانه ی  zxing را در گردل اد کرده و پروژه را sync کنید.

 

سپس در manifest یک پرمیشن برای دوربین قرار دهید:

کد جاوای اسکن بارکد

یک اکتیویتی بنام SimpleScannerActivity ایجاد کرده و سورس کد زیر را درآن وارد کنید:

 

در بالا ابتدا اکتیویتی  را implements  کردیم به  ZXingScannerView.ResultHandlerکه بعد از این کار، با کلیک روی چراغ قرمز، از ما میخواهد متد handleResult را  ایمپورت کنیم. روش استفاده از این کتابخانه به اینصورت است که بجای اینکه      Layoutرا خودمان طراحی کنیم،  باید آن را از کتابخانه گرفته و برای اکتیویتی ست کنیم ، پس ابتدا یک شی از کتابخانه می سازیم و با setContentView آن را برای اکتیویتی ست می کنیم:

 

وقتی اکتیویتی اجرا می شود ، متدها ی  onStart و onResume و بعد از بستن اکتیویتی متدهای onStop و onPause اجرا می شوند. پس در متد onResume ابتدا مشخص می کنیم ،نتیجه ای که میخواهد Handler شود داخل همین اکتیویتی است و سپس دوربین را روشن میکنیم:

 

و داخل متد onPause دوربین را می بندیم:

 

حالا میریم سراغ متد handleResult. داخل این متد ابتدا یک صدا برای زمانی که اسکن انجام می شود تنظیم کرده ایم. گوشی اندروید صداهایی داره که بین همشون مشترکه اون را میگیریم و به Tone می دهیم و در خط بعدی آن را پخش می کنیم و چون ممکن است گوشی اندروید نتواند این صدا را پخش کند کد آن را داخل try/catch قرار می دهیم:

 

بعد از اسکن ، صفحه ی اسکن را با finish() می بندیم و نتیجه ی اسکن  که داخل rawResult قرار دارد ،Putextra می کنیم:

کد جاوای اکتیویتی شامل دکمه ی بارکد

کدهای مربوط به اسکن بارکد به پایان رسید حالا باید یک اکتیویتی ایجاد کنیم که با کلیک روی دکمه ی داخل آن ، وارد صفحه ی اسکن شویم. پس داخل کد xml اکتیویتی ، یک Button برای انتقال به صفحه ی اسکن و یک TextView برای نمایش نتیجه ی اسکن قرار می دهیم:

 

داخل کد جاوای اکتیویتی سورس کد زیر را وارد کنید:

 

در بالا ابتدا Button و TextView را تعریف کرده ، آن ها را findViewById می کنیم و برای Button ، متد setonClickListener می نویسیم. داخل تابع onClick  ابتدا چک می کنیم پرمیشن گرفته شده یا نه. اگر پرمیشن گرفته نشده، پرمیشن را بگیرد و در غیراینصورت به صفحه ی اسکن منتقل شود:

 

حالا با کلیک بر روی دکمه، وارد اکتیویتی اسکن شده و کدهای اسکن بارکد، اجرا می شود و بعد از اسکن، اکتیویتی بسته شده و وارد اکتیویتی قبلی می شویم که داخل این اکتیویتی با متد  onActivityResult، نتیجه ی اسکن را که putextra کرده بودیم میگیریم و آن را برای TextView ست می کنیم:

 

1

 

نویسنده: الهه ابراهیمی

  • امتیاز :
    1 ستاره2 ستاره3 ستاره4 ستاره5 ستاره
    Loading...
  • نظرات