6

Android/iOS 用の XE7 で開発された私のアプリには、バーコードをスキャンするためのフォームがあります。バーコードが見つかると、アプリはそれが許容可能なバーコードかどうかを検証します。ここのチュートリアルに従ってください: http://www.fmxexpress.com/qr-code-scanner-source-code-for-delphi-xe5-firemonkey-on-android-and-ios/

現在、私は Android でテストしており、バーコードのスキャンと読み取りを統合できますが、バーコードを見つける共有アクティビティから返されたときに「onBarCode」イベントが発生しません。同じコードは Rad Studio の以前のバージョン (XE4、XE5、XE6) では正常に機能しましたが、XE7 では正常に機能しません。

コードの一部を次に示します。

...
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 は、イベントも起動していないことを検証するために使用されました。タップして手動で貼り付けるとバーコードが表示されるので、バーコードが読み取られていることを確認できます。

以前のバージョンの Rad Studio のように XE7 で機能しないのはなぜですか?

4

4 に答える 4

1

私にとってこのコードはうまくいきます!

andorid.BarcodeScanner で

function TAndroidBarcodeScanner.HandleAppEvent(AAppEvent: TApplicationEvent;
  AContext: TObject): Boolean;
var
  aeBecameActive : TApplicationEvent;
begin
  aeBecameActive := TApplicationEvent.BecameActive;
  if FMonitorClipboard and (AAppEvent = aeBecameActive) then
  begin
    GetBarcodeValue;
  end;
end;
于 2015-03-12T17:39:28.300 に答える