В настоящее время я могу сгенерировать 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;
}