【问题标题】:Android Barcode Scanner IssueAndroid 条码扫描器问题
【发布时间】:2012-07-05 18:56:40
【问题描述】:

我正在开发条形码扫描仪。当我点击扫描按钮时,出现以下异常。

07-05 16:15:50.328: E/AndroidRuntime(301): android.content.ActivityNotFoundException: 未找到处理 Intent { act=com.google.zxing.client.android.SCAN 的活动(有附加功能)}

这是我的代码:

    getWindow().setFormat(PixelFormat.UNKNOWN);

    surfaceHolder = surfaceView.getHolder();
    surfaceHolder.addCallback(this);
    surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

    scan_btn.setOnClickListener( new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent scanIntent= new Intent("com.google.zxing.client.android.SCAN");
            scanIntent.putExtra("SCAN_MODE", "PRODUCT_MODE");

            startActivityForResult(scanIntent, 0);

               if(!previewing){
                     camera = Camera.open();
                     if (camera != null){
                      try {
                       camera.setPreviewDisplay(surfaceHolder);
                       camera.startPreview();
                       previewing = true;
                      } catch (IOException e) {
                       // TODO Auto-generated catch block
                       e.printStackTrace();
                      }
                     }
                    }

        }

    });
} 

    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
               if (requestCode == 0) {
                  if (resultCode == RESULT_OK) {
                 String contents = intent.getStringExtra("SCAN_MODE");
                 String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
                 // Handle successful scan
                result_text.setText(intent.getStringExtra("SCAN_RESULT"));
                  } else if (resultCode == RESULT_CANCELED) {
                     // Handle cancel
                      result_text.setText("Scan cancelled.");
                  }
               }
            }           

@Override
public void surfaceCreated(SurfaceHolder paramSurfaceHolder) {
    // TODO Auto-generated method stub

}
@Override
public void surfaceChanged(SurfaceHolder paramSurfaceHolder, int paramInt1,
        int paramInt2, int paramInt3) {
    // TODO Auto-generated method stub

}
@Override
public void surfaceDestroyed(SurfaceHolder paramSurfaceHolder) {
    // TODO Auto-generated method stub

}

}

我在清单文件中注册了 captureActivity。

【问题讨论】:

  • 您混淆了两种完全不同的集成。删除所有这些代码并从code.google.com/p/zxing/wiki/ScanningViaIntent重新开始
  • 我对我的代码进行了一些更改。现在我的应用程序正在设备上运行。它的检测图像但没有做任何事情

标签: android zxing


【解决方案1】:

我认为你应该关注this

【讨论】:

    【解决方案2】:

    如果您正在与 Zxing 集成,请确保您的 Manifest 中有此内容:

     <activity android:name="com.google.zxing.client.android.CaptureActivity"
     android:screenOrientation="landscape"
     android:configChanges="orientation|keyboardHidden"
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
     android:windowSoftInputMode="stateAlwaysHidden">
     <intent-filter>
       <action android:name="com.google.zxing.client.android.SCAN"/>
      <category android:name="android.intent.category.DEFAULT"/>
     </intent-filter>
    

    您还需要将此发送到调用意图:

    intent.setPackage(yourpackagestring);
    

    【讨论】:

    • 如果有意与 Barcode Scanner 集成,您确实不需要需要这些条目。反而会导致机制失效。
    • 抱歉,sean 误读了这个问题。我认为 OP 正在寻求将 Zing 集成为库,而不是使用通过 Intent 作为 CaptureActvity 在他的 Qn 中的注册状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多