我能够通过意图调用条形码扫描器,但是当我尝试捕获基于this的扫描返回的值时,尝试构建解决方案时出现以下错误。从条形码扫描获得结果
- Android.Content.Intent”不包含一个定义‘getStringExtras’和没有扩展方法‘getStringExtras’接受型的第一参数‘Android.Content.Intent’可以找到(是否缺少使用指令或程序集引用?)
- 名称“RESULT_CANCELED”不在当前情况下存在
- “RESULT_OK”并不在当前的背景下
这里存在这个名字是我的两个调用代码扫描仪并尝试返回结果。 点击事件在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)
{
}
}
}
这种方法可能不是实现此目的的最佳方式,因为如果未安装zxing的条形码扫描程序,您的应用程序将崩溃。 – 2011-12-27 21:39:04
(他只需要捕获ActivityNotFoundException或者首先检查包,或者使用IntentIntegrator - 很容易就不行) – 2011-12-27 22:39:51