我可以通过意图调用条形码扫描程序,但是当我尝试捕获基于此的扫描返回的值时,我在尝试构建解决方案时遇到以下错误.
这是我调用扫描程序并尝试返回结果的代码.点击事件在onCreate中.onActivityResult是与scan.Click事件相同的同类,相同名称空间中的方法.
Button scan = (Button)FindViewById(Resource.Id.scan);
scan.Click += (o, e) =>
{
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.SetPackage("com.google.zxing.client.android");
intent.PutExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
StartActivityForResult(intent, 0);
};
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
}
else if (resultCode == RESULT_CANCELED)
{
}
}
}
Run Code Online (Sandbox Code Playgroud) 我一直在搜索如何添加条形码扫描仪到我的应用程序只是为了解码条形码.我找到了一个非常好的应用程序,我可以整合做那个叫做"Zxing"但唯一的问题是,它有编码和解码但我真正想要的只是解码,以便我可以限制我使用的Zxing开源文件.
我搜索了很多地方找不到只用zxing解码?
所以我的问题是我怎么能只使用Zxing进行解码而不进行编码呢?我们非常感谢示例代码和分步说明.
提前致谢!
我想为安卓实现二维码阅读器。我使用了这个解决方案,但它只打开相机,捕捉图像但什么都不做。我想知道最好的方法(无视 zxing 的意图集成器)
我是C#新手,在使用ZXing.Net进行二维码解码时遇到了问题。应用程序启动时没有错误,但我在结果字符串中什么也没有。我认为问题可能出在RGBLuminanceSource() 中。
private static byte[] ToByteArray(Image img)
{
byte[] byteArray = new byte[0];
using (MemoryStream stream = new MemoryStream())
{
img.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
stream.Close();
byteArray = stream.ToArray();
}
return byteArray;
}
private void button1_Click(object sender, EventArgs e)
{
*** SOME OTHER CODE HERE ***
Bitmap BitmapImage = new Bitmap(@"D:\1.png");
QRCodeReader reader = new QRCodeReader();
LuminanceSource source = new RGBLuminanceSource(ToByteArray(BitmapImage), BitmapImage.Width, BitmapImage.Height);
var binarizer = new HybridBinarizer(source);
var binBitmap = new BinaryBitmap(binarizer);
string result …Run Code Online (Sandbox Code Playgroud) 我正在构建一个需要能够扫描二维码的 Windows Phone 应用程序(使用 Windows 运行时,它是一个通用应用程序)。为此,我正在使用 ZXing.NET。我遇到的问题如下:当相机开始捕捉时,ZXing 抛出一个 IndexOutOfRangeException:
A first chance exception of type 'System.IndexOutOfRangeException' occurred in ZXing.winmd
at ZXing.BitmapLuminanceSource..ctor(WriteableBitmap writeableBitmap)
at ZXing.BarcodeReader.<.cctor>b__4(WriteableBitmap bitmap)
at ZXing.BarcodeReader.Decode(WriteableBitmap barcodeBitmap)
at xxx.Views.Scanner2.ScanBitmap(WriteableBitmap writeableBmp)
at xxx.Views.Scanner2.<OnNavigatedTo>d__5.MoveNext()
Run Code Online (Sandbox Code Playgroud)
我正在使用的代码是:
while (_result == null)
{
using (var stream = new InMemoryRandomAccessStream())
{
await _mediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateJpeg(), stream);
stream.Seek(0);
var writeableBitmap = new WriteableBitmap(1, 1);
await writeableBitmap.SetSourceAsync(stream);
_result = ScanBitmap(writeableBitmap);
}
}
Run Code Online (Sandbox Code Playgroud)
ScanBitmap 函数如下所示:
private Result ScanBitmap(WriteableBitmap writeableBmp)
{
var barcodeReader = new BarcodeReader
{
Options = new DecodingOptions …Run Code Online (Sandbox Code Playgroud) 我有一个使用 ZXing Barcode Scanner 库的应用程序,但是当我在设备上运行该应用程序时,还安装了另一个名为“Leaks”的附加应用程序。为什么要在设备上安装此应用程序?当我打开它时什么也没有发生?
我正在尝试为我的应用程序生成二维码。用户将输入一些文本,数据将传递到下一个活动,该活动将显示二维码。
这是我的代码。
public class QRgenerator extends AppCompatActivity {
ImageView imageView;
String Qrcode;
public static final int WIDTH = 500;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qrgenerator);
getID();
Intent intent = getIntent();
Qrcode = intent.getStringExtra("Data");
//creating thread to avoid ANR exception
Thread t = new Thread(new Runnable() {
@Override
public void run() {
//the message to be encoded in the qr code.
try {
synchronized (this) {
wait(5000);
//runonUIthread on the main thread
runOnUiThread(new Runnable() {
@Override
public void run() …Run Code Online (Sandbox Code Playgroud) 我正在实现 ZXing 条形码阅读器,因此当用户扫描错误的条形码时,会弹出一条警报消息,表明这是错误的条形码。问题是,扫描仪不断扫描警报消息后面并不断弹出相同的警报。我希望扫描仪暂停,直到用户关闭警报消息。这就是我的代码,顺便说一下, zxing.IsAnalyzing = false; 不管用
\n\n zxing = new ZXingScannerView\n {\n HorizontalOptions = LayoutOptions.FillAndExpand,\n VerticalOptions = LayoutOptions.FillAndExpand,\n AutomationId = "zxingScannerView",\n };\n\n\n zxing.OnScanResult += (result) =>\n {\n\n Device.BeginInvokeOnMainThread(async () =>\n {\n if (!result.Text.Equals(auftrag.code))\n {\n zxing.IsAnalyzing = false;\n await DisplayAlert("Barcode nicht gefunden.", "Der Barcode geh\xc3\xb6rt nicht zu dem gew\xc3\xa4hlten Auftrag.", "OK");\n\n }\n else\n\n await Navigation.PushAsync(new AuftragDescription(auftrag));\n }\n });\n };\nRun Code Online (Sandbox Code Playgroud)\n 当 Zxing 发现二维码时,它会将其发送到handleResult功能并停止相机。如果解码后的二维码已保存在我的应用程序中,我需要重新启动相机。如何重新启动相机?
我想在我的Android应用程序中集成条形码扫描程序.
我试图添加zxing库,但我的所有应用程序都是在没有扫描的情况下显示摄像机视图.
http://code.google.com/p/zxing/
有没有一种简单的方法来集成条形码扫描功能?