Zxing扫描仪安卓工作室


嗨,我

知道如何导入一个最小的 Android 库项目来扫描二维码,但在它扫描二维码后,我希望得到二维码得到的结果(例如网址(,但我真的不知道如何检索结果,所以这就是我寻求你帮助的原因。

我正在尝试使用这个:https://github.com/embarkmobile/zxing-android-minimal#custom-layout

我用它来启动扫描仪:

IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setCaptureLayout(R.layout.custom_layout);
integrator.initiateScan();

提前致谢我为网络视图做了这个

wb  = (WebView)findViewById(R.id.webView2);
        wb.loadUrl(re);

First ,您的 Activity 必须实现该方法Activity.onActivityResult(int, int, Intent)并包含如下代码行:

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
   IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
   if (scanResult != null) {
     // handle scan result
   }
   // else continue with any other code you need in the method
   ...
 }

这是您将处理扫描结果的位置。

Second ,只需调用 this 以响应某处的用户操作即可开始扫描过程:

IntentIntegrator integrator = new IntentIntegrator(yourActivity);
 integrator.initiateScan();

请注意,如果系统提示用户下载应用程序,initiateScan()将返回一个非 null 的警报对话框。这允许调用应用潜在地管理对话。特别是,理想情况下,如果应用在其Activity.onPause()方法中仍处于活动状态,则应用会关闭对话框。

可以使用setTitle(String)自定义此下载提示对话框的标题(或者,使用 setTitleByID(int( 按字符串资源 ID 设置标题(。同样,可以更改提示消息和"是/否"按钮标签。

Finally ,您可以使用addExtra(String, Object)向用于调用扫描程序的 Intent 添加更多参数。这可用于设置此简化 API 未直接公开的其他选项。

默认情况下,这将仅允许已知正确响应此意图的应用程序执行此操作。允许响应的应用程序可以使用setTargetApplications(List(进行设置。例如,设置为"TARGET_BARCODE_SCANNER_ONLY"以仅面向条形码扫描仪应用本身。

详情请参阅此处。

示例代码:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
public class MainActivity extends Activity {
    private Button mButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Scanner
        mButton = (Button) findViewById(R.id.assistant_button);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
                integrator.initiateScan();
            }
        });
    }
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
        if (scanResult != null) {
            String re = scanResult.getContents();
            Log.d("code", re);
        }
        // else continue with any other code you need in the method
    }
 }

xml中的一个按钮,然后单击它,扫描条形码,它将返回条形码的原始内容。

最新更新