从 QR 符号中获取字符串
Get String from QR Symbol
我在一个项目中使用ZBAR来读取条码,还有QR。阅读 QR 后,我收到这样的字符串:
eyJ1cmxTZXJ2bGV0IjoiaHR0cHM6Ly9kZW1vcy5pbmZhcGxpYy5lcy9pbnZlbnRhcmlvd2ViL0ludmVudGFyaW9KU09OIiwidG9rZW4iOiI1MjFjY2I5Ny0wNWZkLTRjZGEtYjYxMi00ZTM4YTcwM2MwODkiLCJpZENsaWVudGUiOiJkZW1vcyJ3
事实是,我知道这是一个 JSON,我需要 JSON 中的一个值。但同样的条码扫描仪也必须用于读取常规条码。
我怎么知道读取的是二维码还是普通条形码?而且,一旦我知道了,我怎样才能从那个奇怪的字符串中提取 JSON?
我的代码如下:
PreviewCallback CallbackCamara = new PreviewCallback()
{
public void onPreviewFrame(byte[] data, Camera camera) {
Camera.Parameters parameters = camera.getParameters();
Size dimensiones = parameters.getPreviewSize();
Image barcode = new Image(dimensiones.width, dimensiones.height,"Y800");
barcode.setData(data);
int result = escaner.scanImage(barcode);
if (result != 0) {
previsualizandoCamara = false;
mCamera.setPreviewCallback(null);
mCamera.stopPreview();
SymbolSet syms = escaner.getResults();
for (Symbol sym : syms) {
valor = sym;
barcodeScanned = true;
DevolverCodigo(sym.getData());
}
}
}
};
我想出来了,它是一个 BASE64 字符串,要对其进行解码:
String stringFromBase = new String(Base64.decode(sym.getData(), Base64.DEFAULT));
在那个字符串中我有我的 JSON 对象。
我在一个项目中使用ZBAR来读取条码,还有QR。阅读 QR 后,我收到这样的字符串:
eyJ1cmxTZXJ2bGV0IjoiaHR0cHM6Ly9kZW1vcy5pbmZhcGxpYy5lcy9pbnZlbnRhcmlvd2ViL0ludmVudGFyaW9KU09OIiwidG9rZW4iOiI1MjFjY2I5Ny0wNWZkLTRjZGEtYjYxMi00ZTM4YTcwM2MwODkiLCJpZENsaWVudGUiOiJkZW1vcyJ3
事实是,我知道这是一个 JSON,我需要 JSON 中的一个值。但同样的条码扫描仪也必须用于读取常规条码。
我怎么知道读取的是二维码还是普通条形码?而且,一旦我知道了,我怎样才能从那个奇怪的字符串中提取 JSON?
我的代码如下:
PreviewCallback CallbackCamara = new PreviewCallback()
{
public void onPreviewFrame(byte[] data, Camera camera) {
Camera.Parameters parameters = camera.getParameters();
Size dimensiones = parameters.getPreviewSize();
Image barcode = new Image(dimensiones.width, dimensiones.height,"Y800");
barcode.setData(data);
int result = escaner.scanImage(barcode);
if (result != 0) {
previsualizandoCamara = false;
mCamera.setPreviewCallback(null);
mCamera.stopPreview();
SymbolSet syms = escaner.getResults();
for (Symbol sym : syms) {
valor = sym;
barcodeScanned = true;
DevolverCodigo(sym.getData());
}
}
}
};
我想出来了,它是一个 BASE64 字符串,要对其进行解码:
String stringFromBase = new String(Base64.decode(sym.getData(), Base64.DEFAULT));
在那个字符串中我有我的 JSON 对象。