簡體   English   中英

Zxing條碼掃描器無法從我的應用程序打開

[英]Zxing barcode scanner doesn't open from my app

通過將包com.google.zxing.integration.android添加到我的項目中,並將此代碼添加到MainActivity.java文件中,我已經集成了Zxing條形碼掃描儀:

public static Button scanBtn;

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    scanBtn = (Button) findViewById(R.id.scan_button);

    scanBtn.setOnClickListener(this);
}

public void onClick(View v) {
    IntentIntegrator scanIntegrator = new IntentIntegrator(this);
    scanIntegrator.initiateScan();
}

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    ...
}

由於某些原因,當我單擊按鈕( scanBtn )時,什么也沒有發生。 日志中沒有任何內容,並且屏幕上沒有任何內容。

請你幫助我好嗎?

您可以嘗試一下此代碼,看看是否適合您嗎?

scanBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    new IntentIntegrator(this).initiateScan();  
                }
            });

只需在您的onCreate中添加上面的代碼即可:

scanBtn.setOnClickListener(this);

和這個:

public void onClick(View v) {
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();

}

讓我知道這是否適合您:)

首先在您的gradle文件中添加以下依賴項

compile 'com.journeyapps:zxing-android-embedded:3.1.0@aar'
compile 'com.google.zxing:core:3.2.0'

刪除com.google.zxing.integration.android

然后像下面的代碼一樣更改onClick方法

public void onClick(View v) {
     IntentIntegrator scanIntegrator = new IntentIntegrator(MainActivity.this);
                    scanIntegrator.setPrompt("Scan");
                    scanIntegrator.setBeepEnabled(true);
                    scanIntegrator.setOrientationLocked(true);
                    scanIntegrator.setBarcodeImageEnabled(true);
                    scanIntegrator.initiateScan();
}

它將實例化掃描,您可以在onActivityResult獲得掃描結果

像這樣

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if (scanningResult != null) {
            if (scanningResult.getContents() != null) {
                String scanContent = scanningResult.getContents().toString();
                String scanFormat = scanningResult.getFormatName().toString();
            }

            Toast.makeText(this,scanContent+"   type:"+scanFormat,Toast.LENGTH_SHORT).show();

        }else{
            Toast.makeText(this,"Nothing scanned",Toast.LENGTH_SHORT).show();
        }
    }

是在Android中使用Zxing條碼掃描器的示例項目

希望能幫助到你

我已經為相機添加了權限,此權限已解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM