条形码扫描仪不适用于Glass GDK

时间:2014-05-12 17:15:13

标签: barcode-scanner google-gdk

我是Glass GDK开发的新手,我在扫描条形码时遇到了问题。我已按照此(http://blog.wombatsoftware.de/2014/01/running-zxing-qr-code-engine-on-google.html)帖子,但我的条形码扫描仪仍然无法正常工作。它看起来像一张照片。 我也看了BarcodeEye project,但我不明白如何将它与我的项目集成。你能帮我吗?

CameraConfiguration

   public void googleGlassInit(Camera camera) {
      Camera.Parameters params = camera.getParameters();
      params.setPreviewFpsRange(30000, 30000);
      params.setPreviewSize(640,360);
      camera.setParameters(params);
    }
    void setTorch(Camera camera, boolean newSetting) {
        Camera.Parameters parameters = camera.getParameters();
        doSetTorch(parameters, newSetting, false);
        camera.setParameters(parameters);
        googleGlassInit(camera); // added this line
       // googleGlassXE10WorkAround(camera);
    }
...

MainActivity.java

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
         intent.setPackage("com.google.zxing.client.android");
         intent.putExtra("SCAN_MODE","QR_CODE_MODE");
         startActivityForResult(intent,0);  

        }

        //when a QR code is read, it will send a result code 
            protected void onActivityResult(int requestCode, int resultCode,
            Intent data) {
             if (requestCode == 0 && resultCode == RESULT_OK){
                String contents = data.getStringExtra("SCAN_RESULT");
                Card card1 = new Card(this);
                card1.setText(contents);
                card1.setFootnote("zxing");
                View card1View = card1.getView();
                setContentView(card1View);
            //    setDisplayCard(card1);

            }
            super.onActivityResult(requestCode, resultCode, data);

    }

enter image description here


2 个答案:

答案 0 :(得分:0)

不幸的是,Google Glass实际上并不支持所有帧速率/分辨率组合,这意味着它在它所公开的支持的相机参数范围内。如果您选择实际不支持的设置,您会经常看到这样的显示。

这在XE16.2中变得更好,但仍然适用于高分辨率。

您可以从条形码扫描仪应用程序的这个端口中的相机配置中获取一些灵感,从原始项目到Glass,它可以工作:

https://github.com/zxing/zxing/blob/master/glass/src/com/google/zxing/client/glass/CameraConfigurationManager.java

1280 x 720,10fps似乎很好。

答案 1 :(得分:0)

CameraConfiguraionManager中,您还需要在googleGlassInit(camera)中添加setDesiredCameraParameters

parameters.setPreviewSize(cameraResolution.x, cameraResolution.y);
camera.setParameters(parameters);
googleGlassInit(camera); // added this line

Camera.Parameters afterParameters = camera.getParameters();
Camera.Size afterSize = afterParameters.getPreviewSize();

我希望这对你有所帮助!这对我有用:)

PD:我也使用640x360,这应该不是问题。