C# ZXing,带TryInverted color选项的DataMatrix阅读器不';t似乎在iOs上工作(Xamarin.Forms)

C# ZXing,带TryInverted color选项的DataMatrix阅读器不';t似乎在iOs上工作(Xamarin.Forms),c#,ios,xamarin.forms,datamatrix,zxing.net,C#,Ios,Xamarin.forms,Datamatrix,Zxing.net,我正在使用Xamarin.Forms和Visual Studio开发一个应用程序,我还尝试使用ZXing.Net.Mobile和ZXing.Net.Mobile.Forms Nuget包扫描DataMatrix 默认情况下,一切正常,但DataMatrix使用反转颜色打印时除外。这就是为什么我尝试使用TryInverted选项,但这个选项似乎不适用于苹果设备 事实上,使用安卓系统,我的应用程序能够检测到DataMatrix,即使是反转颜色,iPhone 5S也不能,只有在颜色没有反转的情况下。(

我正在使用Xamarin.Forms和Visual Studio开发一个应用程序,我还尝试使用ZXing.Net.Mobile和ZXing.Net.Mobile.Forms Nuget包扫描DataMatrix

默认情况下,一切正常,但DataMatrix使用反转颜色打印时除外。这就是为什么我尝试使用TryInverted选项,但这个选项似乎不适用于苹果设备

事实上,使用安卓系统,我的应用程序能够检测到DataMatrix,即使是反转颜色,iPhone 5S也不能,只有在颜色没有反转的情况下。(我非常确定,因为我尝试在两种配置中使用相同的DataMatrix,反转颜色和非反转颜色)。下面是我的代码

var scan = DependencyService.Get<IDScan>();

var options = new ZXing.Mobile.MobileBarcodeScanningOptions();
options.TryInverted = true;
options.TryHarder = true; /* Don't really know if it's needed ?*/
options.AutoRotate = true; 
options.PureBarcode = false; /* Don't really know what is it ?*/

options.PossibleFormats = new List<ZXing.BarcodeFormat>() {
  ZXing.BarcodeFormat.DATA_MATRIX, ZXing.BarcodeFormat.QR_CODE
};

var result = await scan.GetResult(options);

if (result != null)
{
    await App.Current.MainPage.DisplayAlert(
               "Scan result",
               "Format :" + result.BarcodeFormat +
               "\nNumBits : " + result.NumBits +
               "\nValue : " + result.Text,
               "OK"
    );
}
var scan=DependencyService.Get();
var options=new ZXing.Mobile.MobileBarcodeScanningOptions();
options.TryInverted=true;
options.TryHarder=true;/*真的不知道是否需要它*/
options.AutoRotate=true;
options.PureBarcode=false;/*我真的不知道是什么*/
options.possibleformas=新列表(){
ZXing.BarcodeFormat.DATA_矩阵,ZXing.BarcodeFormat.QR_码
};
var result=wait scan.GetResult(选项);
如果(结果!=null)
{
等待App.Current.MainPage.DisplayAlert(
“扫描结果”,
“格式:”+result.BarcodeFormat+
“\n名称:”+result.NumBits+
“\n值:”+result.Text,
“好的”
);
}
以及我的iOs ScanActivity以获取结果和扫描仪

public class ScanActivity : IDScan
{
    ZXing.Mobile.MobileBarcodeScanner scanner;

    public ScanActivity()
    {
        Debug.WriteLine("Scan Android1");
        var window = UIKit.UIApplication.SharedApplication.KeyWindow;
        var vc = window.RootViewController;
        while (vc.PresentedViewController != null)
        {
            vc = vc.PresentedViewController;
        }
        scanner = new ZXing.Mobile.MobileBarcodeScanner(vc);

    }

    public ZXing.Mobile.MobileBarcodeScanner GetScanner()
    {
        return scanner;
    }

    public async Task<ZXing.Result> GetResult(ZXing.Mobile.MobileBarcodeScanningOptions options)
    {
        var result = await scanner.Scan(options,true);
        return result;
    }
}
公共类扫描活动:IDScan
{
ZXing.Mobile.MobileBarcodeScanner扫描仪;
公共活动()
{
Debug.WriteLine(“Scan Android1”);
var window=UIKit.UIApplication.SharedApplication.KeyWindow;
var vc=window.RootViewController;
while(vc.PresentedViewController!=null)
{
vc=vc.PresentedViewController;
}
扫描仪=新ZXing.Mobile.MobileBarcodeScanner(vc);
}
public ZXing.Mobile.MobileBarcodeScanner GetScanner()
{
回程扫描仪;
}
公共异步任务GetResult(ZXing.Mobile.mobilebarcodescanning选项)
{
var result=wait scanner.Scan(选项,true);
返回结果;
}
}

这个问题似乎已经解决了,你使用的是ZXing.Net.Mobile的哪个版本?我使用的是最后一个版本,但我已经解决了这个问题。我同时使用了ZXIng.Net.Mobile和ZXIng.Net.Mobile.Forms,所以我尝试从项目中删除ZXIng.Net.Mobile,除了Android项目(无法再构建项目)之外,其他一切都可以正常工作,所以我只为Android项目添加了ZXIng.Net.Mobile,所有事情都可以像这样正常工作。