我使用Zbar库进行QR扫描。 我试着解析这次扫描的结果,但是我丢失了一些信息。对于解析,我使用this library。
是否有其他库可以解析handleResult(Result rawResult)
rawResult?
这是我的代码: @override
public void handleResult(final Result rawResult) {
Log.v("myLog", rawResult.getContents()); // Prints scan results
Log.v("myLog", rawResult.getBarcodeFormat().getName()); // Prints the scan format (qrcode, pdf417 etc.)
unswer = rawResult.getContents();
if (unswer.contains("VCARD")){
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Содержимое");
builder.setMessage(unswer = rawResult.getContents());
builder.setPositiveButton("Добавить контакт", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String parseVcard = unswer;
VCard vCard = VCardParser.parse(parseVcard);
String name = vCard.getName();
String fname = vCard.getFormattedName();
Log.d("myLog", name + " " + fname);
addContact(fname + " " + name);
}
});
builder.setNegativeButton("Отмена", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mScannerView.resumeCameraPreview(SimpleScannerActivity.this);
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
答案 0 :(得分:0)
vCard.getFormattedName()
不会为您返回值,因为您的rawResult
不包含" FN"值。当你查看你发送的值时,它只包含" N"这意味着您只有vCard.getName();