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