Тип контакта или vcard генератор QR-кодов от Zxing Library Android - PullRequest
0 голосов
/ 15 октября 2019

В настоящее время я могу сгенерировать QR-код в виде простого текста библиотекой Zxing, но я ищу что-то, с помощью чего я могу сгенерировать QR-код, содержащий имя, номер телефона, адрес, URL, организацию и т. Д., Как VCARD.

Ниже для переменной STR я могу передавать только простой текст, но мне нужно, чтобы вся информация передавалась как VCARD. Я также пробовал Google vision API, но у него есть только опция сканирования.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    setHasOptionsMenu(true);
    View view=inflater.inflate(R.layout.fragment_qr_generate, container, false);
    ImageView imageView = (ImageView) view.findViewById(R.id.testImgId);
    try {
        Bitmap bitmap = encodeAsBitmap(STR);
        imageView.setImageBitmap(bitmap);
    } catch (WriterException e) {
        e.printStackTrace();
    }
    return view;
}

Bitmap encodeAsBitmap(String str) throws WriterException {
    BitMatrix result;
    try {
        result = new MultiFormatWriter().encode(str,
                BarcodeFormat.QR_CODE, WIDTH, HEIGHT, null);
        //new MultiFormatWriter().encode()
    } catch (IllegalArgumentException iae) {
        // Unsupported format
        return null;
    }

    int w = result.getWidth();
    int h = result.getHeight();
    int[] pixels = new int[w * h];
    for (int y = 0; y < h; y++) {
        int offset = y * w;
        for (int x = 0; x < w; x++) {
            pixels[offset + x] = result.get(x, y) ? BLACK : WHITE;
        }
    }

    Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
    bitmap.setPixels(pixels, 0, w, 0, 0, w, h);
    return bitmap;
}
...