在使用XE7 for Android/iOS开发的应用程序中,我有一个用于扫描条形码的表格。找到条形码后,我的应用会验证它是否是可接受的条形码。在这里关注以下教程:http://www.fmxexpress.com/qr-code-scanner-source-code-for-delphi-xe5-firemonkey-on-android-and-ios/

目前,我正在Android上进行测试,并且能够集成条码的扫描和读取,但是从共享的查找条码 Activity 返回时,不会触发“onBarCode”事件。相同的代码可以与Rad Studio的早期版本(XE4,XE5,XE6)一起很好地工作,但现在在XE7中却不能。

以下是一些代码 fragment :

...
begin
    Scanner := TAndroidBarcodeScanner.Create(true);
    Scanner.OnBarCode := BarcodeHandler;
    Scanner.Scan;
end;

procedure TmScannerForm.BarcodeHandler(Sender: TAndroidBarcodeScanner;
  BarCode: String);
begin
  text1.Text := Barcode;
  memo1.PasteFromClipboard;
  AddBarcode(BarCode, true);
end;

AddBarCode是我用来验证条形码并将其添加到列表的偶数,但是我没有包括它,因为该代码不是问题-甚至没有触发。 Text1.text:= Barcode和memo1.paseFromClipboard用于验证甚至没有触发。我可以确认正在读取条形码,因为如果我点击并手动粘贴,则会显示条形码。

为什么在XE7上不能像在Rad Studio的早期版本中那样工作?

最佳答案

与基于事件处理的博客上的计时器相比,Andrea Magni有一个更优雅的解决方案。

我会发表评论以发送链接,但是我没有足够的声誉。
他博客的链接是:

http://blog.delphiedintorni.it/2014/10/leggere-e-produrre-barcode-con-delphi.html

也许这可以帮助您。该博客虽然是意大利语的,但提供了源,并由他们自己解释。

关于android - 条码读取Delphi XE7, Intent 未触发后发生事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26183414/

10-09 09:43