首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zxing扫描仪Android Studio

Zxing扫描仪Android Studio
EN

Stack Overflow用户
提问于 2014-12-20 02:06:20
回答 1查看 36.9K关注 0票数 4

嗨,我知道如何导入一个最小的Android库项目来扫描二维码,但在它扫描二维码之后,我希望得到二维码得到的结果(例如url),但我真的不知道如何检索结果,所以这就是为什么我需要你的帮助。

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

我使用这个命令来启动扫描仪:

代码语言:javascript
复制
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setCaptureLayout(R.layout.custom_layout);
integrator.initiateScan();

提前感谢,我这样做是为了网络浏览。

代码语言:javascript
复制
wb  = (WebView)findViewById(R.id.webView2);
        wb.loadUrl(re);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-20 05:05:48

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

代码语言:javascript
复制
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,只需在某个位置调用此函数来响应用户操作即可开始扫描过程:

代码语言:javascript
复制
IntentIntegrator integrator = new IntentIntegrator(yourActivity);
 integrator.initiateScan();

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

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

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

默认情况下,这将只允许已知正确响应此意图的应用程序这样做。允许响应的应用可以通过setTargetApplications(List)进行设置。例如,设置为TARGET_BARCODE_SCANNER_ONLY将仅针对条形码扫描仪应用程序本身。

有关更多详细信息,请参阅here

示例代码:

代码语言:javascript
复制
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中点击一个按钮,扫描一个条形码,它将返回条形码的原始内容。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27571530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档