[JAVA] Lire et générer un code QR [Android]

Environnement de développement

OS: macOS HighSierra Android Studio: 3.0.1

・ Réglage du niveau d'API

build.gradle


android {
    compileSdkVersion 26
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 26
        }
}

Présentation de la bibliothèque

Bibliothèque à utiliser: zxing-android-embedded (3.6.0) https://github.com/journeyapps/zxing-android-embedded

Comment ajouter au projet: Ajoutez la phrase suivante à build.gradle (Module: app).

build.gradle


dependencies {
    ...
    compile 'com.journeyapps:zxing-android-embedded:3.6.0'
}

Lire le code QR

Démarrez la caméra de lecture

python



new IntentIntegrator(MainActivity.this).initiateScan();

Écrivez le code ci-dessus où vous voulez lire. Remplacez la partie de MainActivity.this par le nom de l'activité cible et utilisez-la.

Acquisition des résultats de lecture

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if(result != null) {
            Log.d("readQR", result.getContents());
        } else {
            super.onActivityResult(requestCode, resultCode, data);
        }
    }

Les données lues peuvent être reçues sous forme de type String avec getContents ().

Génération de code QR

python


//Chaîne de caractères à coder QR
String data = "https://www.google.com";
//Spécifiez la taille de l'image du code QR(pixel)
int size = 500;


try {
    BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
    //Créer un code QR avec Bitmap
    Bitmap bitmap = barcodeEncoder.encodeBitmap(data,BarcodeFormat.QR_CODE, size, size);

    //Placez le code QR créé sur l'écran
    ImageView imageViewQrCode = (ImageView) findViewById(R.id.imageView);
    imageViewQrCode.setImageBitmap(bitmap);

} catch (WriterException e) {
    throw new AndroidRuntimeException("Barcode Error.", e);
}

-Le contenu de data est reflété dans le code QR. -Spécifiez la taille de l'image avec size.

Préparez ImageView dans le fichier xml correspondant à Acticity, Placez le code QR créé par Bitmap et affichez-le à l'écran.

** <Si vous souhaitez spécifier le code de caractère, le niveau de correction d'erreur, la version du code QR, etc.> **

python



String data = "https://www.google.com"; //Chaîne de caractères à coder QR
//Spécifiez la taille de l'image du code QR(pixel)
int size = 500;

try {
    BarcodeEncoder barcodeEncoder = new BarcodeEncoder();

    HashMap hints = new HashMap();

    //Spécification du code de caractère
    hints.put(EncodeHintType.CHARACTER_SET, "shiftjis");

    //Spécifiez le niveau de correction d'erreur
        //L 7%Peut être restauré
        //M 15%Peut être restauré
        //Q 25%Peut être restauré
        //H 30%Peut être restauré
    hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);

    //Spécifiez la version du code QR
    hints.put(EncodeHintType.QR_VERSION, 20);

    Bitmap bitmap = barcodeEncoder.encodeBitmap(data, BarcodeFormat.QR_CODE, size, size, hints);

    ImageView imageViewQrCode = (ImageView) findViewById(R.id.imageView);
    imageViewQrCode.setImageBitmap(bitmap);

} catch (WriterException e) {
    throw new AndroidRuntimeException("Barcode Error.", e);
}

Vous pouvez utiliser ʻEncodeHintType` pour créer un code QR avec des spécifications détaillées.

Recommended Posts

Lire et générer un code QR [Android]
[Android] Lire à partir de l'image du code QR avec zxing
[Ruby] Générer un code QR concaténé avec rqrcode (Knowledge)
[Ruby] Générer un code QR concaténé avec rqrcode (pratique)
Corrigez le code de caractère en Java et lisez à partir de l'URL
Lisez et écrivez comme java.nio
Validation du ressort et code d'erreur
Utiliser le code natif sur Android
[Java] [Android] Lire le fichier ini