ساخت کد QR در اندروید

۲۰ خرداد ۱۳۹۷     سعید نوشادی    

ساخت کد QR در اندروید

ساخت کد QR در اندروید

سلام و خسته نباشید خدمت تمامی کاربران محترم دوزلوپرز

یکی از کارهای خیلی جالبی که میشه توی اپلیکیشن ها انجام داد استفاده از کد QR هستش که امروزه کاربردهای خیلی زیادی رو تو همه بخش های اپلیکیشن ها داره.از درج اطلاعات سایت و یا اپ گرفته تا احراز هویت و خیلی کارهای دیگه.تو این آموزش قصد داریم شیوه ساخت یک کد QR دلخواه رو از طریق کدنویسی بررسی کنیم.این آموزش خوب رو از دست ندید 🙂

1-اول از کتابخونه زیر رو به گریدل تون اضافه کنید

implementation 'com.google.zxing:core:3.2.1'

2-یک اکتیویتی ایجاد کنید و اسمش رو بذارید مثلا ActQR

3-کدهای زیر رو داخل لایه دیزاین اکتیویتی قرار بدید

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">


      <ImageView
            android:id="@+id/img_qr"
            android:layout_width="200dp"
            android:layout_height="200dp" />



    <Button
        android:id="@+id/btn_save"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="ذخیره کد در حافظه"
        android:textSize="18sp" />

</LinearLayout>

4-سمت کد اکتیویتی تون این دو تا ویو رو معرفیش کنید

Button btn_save=(Button) findViewById(R.id.btn_save);
ImageView img_qr=(android.widget.ImageView) findViewById(R.id.img_qr);

5-توسط کد زیر تو رویداد onCreate میتونید کد Qr رو داخل img_qr نمایش بدید

Bitmap bitmap = encodeAsBitmap("http://CaffeLearn.com");
img_qr.setImageBitmap(bitmap);

پارامتری که متد encodeAsBitmap میگیره در واقع میشه اون مقدار کد qr که میتونه هر چیزی باشه.میتونید کاری کنید که مقدارش از طریق یه EditText  گرفته بشه

6-تا اینجا شما تونستید کد qr رو داخل img_qr قرار بدید حالا اگه بخواین همین کد رو داخل حافظه ذخیره کنید باید یه سری کارهای دیگه هم انجام بدبد.اول از همه یه متد درست میکنیم که کارهای ذخیره رو انجامش بده

  void save_to_file(){


        img_qr.buildDrawingCache();
        Bitmap bm=img_qr.getDrawingCache();

        try {
            FileOutputStream fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory().getPath()+"/qr.jpg"));
            bm.compress(Bitmap.CompressFormat.JPEG, 100, fos);
            fos.flush();
            fos.close();
            Toast.makeText(getApplicationContext(),"فایل با موفقیت ایجاد شد",Toast.LENGTH_SHORT).show();

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

    }

7-حالا فقط کافیه که این متد رو داخل رویداد کلیک btn_save قرار بدید.ولی قبلش باید سطح دسترسی حافظه رو بررسیش کنید.پس اول از همه دسترسی WRITE_EXTERNAL_STORAGE  رو به منیفست بدید و بعد کدهای زیر رو داخل رویداد کلیک باتن تون قرار بدید

btn_save.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if(Build.VERSION.SDK_INT>=23){

                        if(ContextCompat.checkSelfPermission(activity, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
                            ActivityCompat.requestPermissions(activity,new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
                        }
                        else
                            save_to_file();

                    }
                    else
                        save_to_file();
                }
            });

        }
        catch (Exception e) {
            e.printStackTrace();
        }

8-در نهایت برای اینکه مطمئن بشیم دسترسی رو کاربر تاییدش کرده از طریق متد زیر اون رو بررسیش میکنیم

 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        try {
            if(grantResults[0]==-1){
                Toast.makeText(getApplicationContext(),"لطفا سطح دسترسی را تایید نمایید",Toast.LENGTH_SHORT).show();
                return;

            }
           else
               save_to_file();
        }
        catch (Exception e) {
            e.printStackTrace();
        }

    }

9-کار تموم و با خیال راحت هر چقدر که میتونید کد Qr رو درست کنید.ممنون از همراهیتون 🙂

سوالی و یا پیشنهادی داشتید دریغ نفرمایید.پشتیبانی Devslopers همه روزه در اختیار شماس 🙂

دسته بندی ها : آموزش متنی اندروید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

code

Rating*