2017-05-14 6 views
0

私はQRスキャンにZbarライブラリを使用します。 このスキャンの結果を解析しようとしましたが、情報が失われました。私は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を使用してみてください –

関連する問題