带有嵌入式扫描仪的OnActivityResult

时间:2019-02-13 11:11:59

标签: java android kotlin barcode-scanner

我有一个带有嵌入式条形码扫描仪的Android设备。

按下设备上的“扫描”按钮时,它将扫描条形码,并且仅当光标位于EditText上时,数据才会显示在EditText中。即选择了EditText。

我希望在未选择EditText的情况下获得扫描结果。

我已经尝试过使用onActivityResult

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); }

但是我没有得到任何结果。 我该怎么办?

我不想按下按钮来激活扫描仪。

1 个答案:

答案 0 :(得分:0)

使用ZXIng library,可以启动扫描器并解析结果。

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;


public void onActivityResult(int requestCode, int resultCode, Intent intent){

    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    Context context = getApplicationContext();
    if (scanResult != null){
        String scanContent = scanResult.getContents();
        Toast toast = Toast.makeText(context, scanContent, 5000);
        toast.show();
    }
    else {
        Toast toast = Toast.makeText(context, "Error", 5000);
        toast.show();
    }
};

此意图是通过android lifecycle方法之一启动的,例如onCreate()覆盖。

IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();