【发布时间】:2017-06-15 06:55:29
【问题描述】:
我正在尝试实现 ZXing.Net nuget 包以从我的应用中读取条形码。
我使用的是片段版本,它放置正确,但它只显示叠加层,相机图像只是黑色。
我搜索了一下,只发现了一些关于手电筒权限的东西......
这是我的代码:
scannerFragment = new ZXingScannerFragment();
//scannerFragment.CustomOverlayView = CustomOverlayView;
scannerFragment.UseCustomOverlayView = false;
scannerFragment.TopText = "";
scannerFragment.BottomText = "";
FindViewById(Resource.Id.imgBarcode).Visibility = ViewStates.Visible;
SupportFragmentManager.BeginTransaction().Replace(Resource.Id.frameScanner, scannerFragment, "ZXINGFRAGMENT").Commit();
MobileBarcodeScanningOptions ScanningOptions = new MobileBarcodeScanningOptions();
ScanningOptions.PossibleFormats = new List<ZXing.BarcodeFormat> { ZXing.BarcodeFormat.EAN_8, ZXing.BarcodeFormat.CODE_128 };
if (ScanningOptions.AutoRotate.HasValue && !ScanningOptions.AutoRotate.Value)
{
RequestedOrientation = ScreenOrientation.Nosensor;
}
scannerFragment.StartScanning(result =>
{
var h = ScanCompletedHandler;
if (h != null)
{
h(result);
}
if (!ZxingActivity.ScanContinuously)
{
SupportFragmentManager.BeginTransaction().Remove(scannerFragment);
}
}, ScanningOptions);
我在清单中有这个:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
我将尝试活动方式而不是片段,以防万一。
设备的摄像头工作正常,为什么会黑屏?
编辑
它正在使用此代码制作全屏版本:
MobileBarcodeScanner.Initialize(Application);
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
var result = await scanner.Scan();
知道为什么它不能作为片段工作吗?
【问题讨论】:
-
你在使用this吗?
-
@Pikoh 我正在使用这个:nuget.org/packages/ZXing.Net.Mobile
标签: c# xamarin.android zxing