在使用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/