2017-03-17 46 views
0

我有一個QR碼閱讀器,當它掃描二維碼並獲取文本時,我希望代碼檢查具有if函數的文本,並且顯示某個圖像。但由於某些原因,它總是陷在if功能......這就像它不會承認result.getText().ToString()作爲一個字符串... \它不能識別QR碼閱讀器的結果作爲字符串

public void processPicture(CameraEvent event) { 
     updateLayout("Please wait..."); 

     if (event.getIndex() == 0) { 
      if (event.getData() != null && event.getData().length > 0) { 
       byte[] data = event.getData(); 
       Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 

       int[] intArray = new int[bitmap.getWidth() * bitmap.getHeight()]; 
       //copy pixel data from the Bitmap into the 'intArray' array 
       bitmap.getPixels(intArray, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight()); 

       LuminanceSource source = new RGBLuminanceSource(bitmap.getWidth(), bitmap.getHeight(), intArray); 

       BinaryBitmap bbmap = new BinaryBitmap(new HybridBinarizer(source)); 
       Reader reader = new QRCodeReader(); 
       int DelayTime = 5000; 
       boolean error = false; 
       try { 

        Result result = reader.decode(bbmap); 
        Log.d(Constants.LOG_TAG, result.getText()); 
        qc = result.getText().toString(); 

        // updateLayout(result.getText()); 
        if(qc == "zoi"){ 
         Bundle iconBundle = new Bundle(); 
         iconBundle.putInt(Control.Intents.EXTRA_LAYOUT_REFERENCE, R.id.image); 
         iconBundle.putString(Control.Intents.EXTRA_DATA_URI, 
           getUriString(R.drawable.zoiko)); 
         currentlyTakingPicture = false; 
         showLayout(R.layout.layout, new Bundle[] {iconBundle}); 
        } 
       } catch (NotFoundException e) { 
        updateLayout("QR Code Not Found"); 
        error = true; 
        e.printStackTrace(); 
       } catch (ChecksumException e) { 
        e.printStackTrace(); 
        updateLayout(new String[] { 
          "QR Code looks corrupted", 
          "Maybe try again?" 
        }); 
        error = true; 
       } catch (FormatException e) { 
        e.printStackTrace(); 
        updateLayout("That's not a QR Code"); 
        error = true; 
       } 

       if (error) { 
        try { 
         Thread.sleep(DelayTime); 
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } 
        currentlyTakingPicture = false; 
        updateLayout(DEFAULT_TEXT); 
       } 
      } 
     } 
    } 

回答

0

我認爲你應該使用.equals()方法比較與字符串。 所以你的條件是 -

if(result.getText().toString().equals("zoi")){ 
//your code here 
}