BÀI 85 - CHIA SẺ VÀ LƯU MÃ QR CODE TRONG ANDROID

  • Cấp quyền này cho ứng dụng

<uses-permission

android:name="android.permission.WRITE_EXTERNAL_STORAGE"

tools:ignore="ScopedStorage" />

  • Chia sẻ QR đến bất kỳ ứng dụng chia sẻ ảnh nào trong điện thoại của bạn.

  • Khi click vào nút chia sẻ thì hộp thoại chia sẻ sẽ hiển thị lên và bạn có thể nhanh chóng chia sẻ mã QR đã tạo đến bất kỳ ứng dụng nào.

Bitmap bmp;


btnShareQR.setOnClickListener(v -> shareImg(bmp));


private void shareImg(Bitmap bitmap){

Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, null,null));

Intent intent = new Intent();

intent.setAction(Intent.ACTION_SEND);

intent.setType("image/png");

intent.putExtra(Intent.EXTRA_STREAM, uri);

intent = Intent.createChooser(intent, "Share");

startActivity(intent);

}

  • Khi click vào nút lưu thì mã QR đã tạo sẽ được lưu trong bộ nhớ của điện thoại

Bitmap bmp;


btnLuuQR.setOnClickListener(v -> {

if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE)

== PackageManager.PERMISSION_GRANTED){

SaveQRcode(bmp);

}

});


private void SaveQRcode(Bitmap bitmap) {

try {

String root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString();

File myDir = new File(root + "/saved_images");

myDir.mkdirs();

String fname = "QR_" + tvTenDuAn.getText() + ".jpg";

File file = new File(myDir, fname);


FileOutputStream out = new FileOutputStream(file);

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);

out.flush();

out.close();


Snackbar snackbar = Snackbar.make(rlCreateQRcode, getString(R.string.da_luu_ma_QR), Snackbar.LENGTH_LONG);

snackbar.show();

} catch (Exception e) {

Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();

}

}