【问题标题】:Barcode Scanner in android doesnt scanandroid中的条码扫描仪不扫描
【发布时间】:2012-02-01 23:37:13
【问题描述】:

我想制作一个应用程序,用户在其中扫描产品的条形码,然后 android 手机将显示有关产品的一些详细信息(来自数据库)。 我在我的安卓手机上安装了 ZXing 条码扫描器,用于调试我的应用程序。当我使用 ZXing 应用程序时,它会扫描条形码。 但是,当我使用我在另一篇文章中找到的以下代码从我的 android 项目中打开 ZXing 时,它不会扫描条形码。我可以在手机的相机中看到红线,但它没有显示绿点“读取”条形码。

Calling barcode scanner on a button click in android application

为什么会发生这种情况? 提前致谢

【问题讨论】:

    标签: android barcode-scanner zxing


    【解决方案1】:

    试试下面的代码。 这是我自己使用的工作代码。

    public class MyTestActivity extends Activity {
        @Override
          public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
        Button b = new Button(this);
        b.setText("Scan");
        b.setWidth(100);
        LinearLayout ll = new LinearLayout(this);
    
         b.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent("com.google.zxing.client.android.SCAN");
                startActivityForResult(intent, 0);
            }   
        });
    
            ll.addView(b);
            setContentView(ll);
    
        }
    
        public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    
    //        IntentResult scanResult = IntentIntegrator.parseActivityResult(
    //                  requestCode, resultCode, intent);
    
            if (requestCode == 0) {
                if (resultCode == RESULT_OK) {
                    String contents = intent.getStringExtra("SCAN_RESULT");
                    String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
    
                    Dialog d = new Dialog(this);
                    LinearLayout ll = new LinearLayout(this);
                    TextView tv = new TextView(this);
                    tv.setText(contents+" "+format);
                    ll.addView(tv);
                    d.setContentView(ll);
                    d.show();          
                }
            }
        }
           }
    

    希望对你有帮助

    【讨论】:

    • 它应该在没有 CAMERA 权限的情况下工作。由于您是按意图启动 Zxing 活动,并且它使用相机处理所有事情,因此只有 Zxing 应用程序需要持有 CAMERA 权限。
    • 仅供参考,甚至 zxing 的 androidtest 示例包也有清单文件中的权限。
    • 是的,确实它在没有这个权限集的情况下工作。我仍然将其用作预防措施。 :)
    • 我认为在某些时候更多的用户会更关心应用程序要求的权限。我相信相机不会掉以轻心。我觉得最好不要请求我的应用不需要的任何权限。我已经构建了一些以这种方式实现带有意图的条形码扫描的应用程序,但我从未包含 CAMERA 权限,也从未见过它的问题。
    • Intent集成不需要权限。 ZXingTest 有它,因为它也为测试拍照。
    【解决方案2】:

    请使用我们提供的预打包集成代码,而不是调试您的意图代码,如下所述:http://code.google.com/p/zxing/wiki/ScanningViaIntent

    【讨论】:

      【解决方案3】:

      Sergey,上面的代码适用于 QR 码,不适用于 Barcode,你测试过条形码吗?

      请让我知道有人使用 Zxing lib 处理条形码。

      【讨论】:

        【解决方案4】:

        我也遇到了同样的问题,换个解决办法

        intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
        

        intent.putExtra("PRODUCT_MODE", "QR_CODE_MODE");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-12-03
          • 2012-08-08
          • 1970-01-01
          • 2012-01-03
          • 2020-11-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多