【发布时间】:2011-12-27 20:50:52
【问题描述】:
我能够通过意图调用条形码扫描仪,但是当我尝试捕获基于 this 的扫描返回的值时,我在尝试构建解决方案时收到以下错误。
- Android.Content.Intent 不包含“getStringExtras”的定义,并且找不到接受“Android.Content.Intent”类型的第一个参数的扩展方法“getStringExtras”(您是否缺少 using 指令或程序集参考?)
- 当前上下文中不存在名称“RESULT_CANCELED”
- 当前上下文中不存在名称“RESULT_OK”
这是我调用扫描仪和尝试返回结果的代码。 点击事件在 onCreate 中。 onActivityResult 是与scan.Click事件在同一个.cs、同一个类、同一个命名空间中的方法。
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的条码扫描器,你的应用会崩溃。
-
(他只需要先捕获 ActivityNotFoundException 或检查包,或使用 IntentIntegrator ——很容易不被绊倒。)
标签: android xamarin.android zxing