2017-05-14 56 views
0

我使用Zbar庫進行QR掃描。 我嘗試解析此掃描的結果,但我失去了一些信息。對於解析我使用this library如何解析QR掃描Zbar android的結果?

其他庫是否可以解析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

這是結果:BEGIN:VCARD N:BB; AA ORG:ER TITLE:DDB TEL:35255 URL:TER 注:BFREF END:VCARD當我使用 字符串名稱= vCard.getName( );我輸了「AA」 – Dem

+0

但是名字有AA和BB。 vCard.getFormattedName(); - 給我null – Dem

回答

0

vCard.getFormattedName()不會回報你一個值,因爲你的rawResult不包含「FN」值。當您查看您發送的值時,它只包含「N」,這意味着您只能使用價值vCard.getName();

+0

好的。但爲什麼它只包含一半呢?當我使用vCard.getName()結果必須包含N:BB; AA - > BB和AA,但它只包含BB – Dem

+0

我試過一個在線解析器,並且能夠獲得BB; AA。您還應該嘗試使用不同的解析器https://github.com/mangstadt/ez-vcard –