我有一个Xamarin Forms 2.0应用程序,它使用ZXing.Net.Mobile和ZXing.Net.Mobile.Forms版本2.0.3.1。我正在尝试构建一个简单的二维码扫描器,但每当我在Android上启动ZXingScannerPage
时,我都可以看到默认的叠加层(带有文字和红线),但我没有看到相机的输出,所以我实际上无法扫描任何东西。我已在AndroidManifest中列出了Camera权限:
<uses-permission android:name="android.permission.CAMERA" />
我尝试了自述文件中的示例代码:https://github.com/Redth/ZXing.Net.Mobile以及他们的Samples / Forms项目。我现在有了这段代码:
private async void OnScanQrClicked(object sender, EventArgs e)
{
_scannerPage = new ZXingScannerPage();
_scannerPage.OnScanResult += HandleScanResult;
await Navigation.PushAsync(_scannerPage);
}
private void HandleScanResult(Result result)
{
_scannerPage.IsScanning = false;
Device.BeginInvokeOnMainThread(() =>
{
Navigation.PopAsync();
DisplayAlert("Scanned code", result.Text, "OK");
});
}
更多规格:我在Moto G(v1)上运行Android 5.1。
为什么我没有看到相机的输出?
答案 0 :(得分:2)
我通过删除ZXing.Net.Mobile.Forms
并将ZXing.Net.Mobile
从2.0降级到1.5来修复它。我不得不改变我的实现,但这相对容易。
将来人们可能会看到的另一件事(我没试过)是添加手电筒权限:https://github.com/Redth/ZXing.Net.Mobile/issues/227。