我能够通过意图调用条形码扫描器,但当我试图捕获基于这的扫描返回的值时,在试图构建解决方案时会出现以下错误。
下面是我的代码,用于调用扫描器和尝试返回结果。单击事件在onCreate中。onActivityResult是same.cs中与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)
{
}
}
}发布于 2011-12-27 21:29:00
这里的问题是,您的onActivityResult方法没有从Java正确地转换为用于Android的Mono。
它应该看起来更像:
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
if (requestCode == 0)
{
if (resultCode == Result.Ok)
{
String contents = data.GetStringExtra("SCAN_RESULT");
String format = data.GetStringExtra("SCAN_RESULT_FORMAT");
}
else if (resultCode == Result.Canceled)
{
}
}
}翻译的重点是:
发布于 2011-12-27 21:36:57
尝试使用zxing提供的实用工具类,可以找到这里。这也将防止您的应用程序崩溃,如果条形码扫描应用程序没有安装。
https://stackoverflow.com/questions/8649160
复制相似问题