二维码与字符串比较ANDROID

QR code comparison to string ANDROID

我正在使用编译 'com.google.android.gms:play-services:10.2.0' (https://developers.google.com/android/reference/com/google/android/gms/vision/barcode/Barcode.html#valueFormat) 来读取二维码。我想将我读取的 QR 与字符串进行比较。如果匹配,它应该显示一条消息。

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        if (data != null) {
            final Barcode barcode = data.getParcelableExtra("barcode");
            // I also tried barcode.displayValue!
            final String password = barcode.rawValue;

            if (password == "123456") {
                resultText.post(new Runnable() {
                    @Override
                    public void run() {
                        resultText.setText("Sucess");
                    }
                });

当我显示我的二维码时,它显示为 123456,但将它与“123456”进行比较却不起作用。

我认为 displayValue 和 rawValue 正在将我的 QR 转换为字符串。有人有什么主意吗? 谢谢

您必须使用 password.equals("123456") 来比较您的字符串。 == 运算符检查字符串是否是完全相同的对象,而不是具有相同的值。

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        if (data != null) {
            final Barcode barcode = data.getParcelableExtra("barcode");
            // I also tried barcode.displayValue!
            final String password = barcode.rawValue;

            if (password.equals("123456")) {
                resultText.post(new Runnable() {
                    @Override
                    public void run() {
                        resultText.setText("Sucess");
                    }
                });

如果它们相等,则使用等于 return true 否则 return false for details

password.equals("12345")

使用password.equals("123456"),比较字符串有效。我希望这能解决您的问题。 As "==" 比较字符串中值的引用,其中 as .equals() 比较实际值 .