Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Umgang mit Google Play Store Warnings "API" (https://www.delphipraxis.net/207472-umgang-mit-google-play-store-warnings-api.html)

Siggi 28. Mär 2021 14:10

Umgang mit Google Play Store Warnings "API"
 
Hallo zusammen,

auch wenn es nur "Warnungen" sind, wüsste ich gerne ob und wenn ja wie ich sie loswerden kann. Es ist meine erste App, entwickelt mit Delphi 10.4.

Im Google Play Store erhalte ich folgende Warnungen:
  • StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/hardware/Camera;-><init>()V
  • StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/view/MotionEvent;-><init>()V

Sollte / muss ich darauf reagieren?
Soweit ich das verstehe, geht es um APIs, die nicht im Standard SDK vorhanden sind. Die App verwendet ZXing zur Barcode-Erkennung -> vermutlich ist das die "non sdk API"? Wie kann ich genauer herausfinden, welche non-sdk-API gemeint ist und wenn ich sie gefunden habe -> habe ich dann überhaupt eine Möglichkeit, die Warnung zu vermeiden, wenn die betroffene Bibliothek (hier wie gesagt vermutlich ZXing) benötigt wird?

Aller Anfang ist schwer :-)

Dankbar für jeden Tipp,
Siggi

TurboMagic 28. Mär 2021 19:34

AW: Umgang mit Google Play Store Warnings "API"
 
Wie nimmst du denn das Kamera Bild auf?
Mit ZXing oder mit Delphi's eigener Umsetzung?

Siggi 29. Mär 2021 19:44

AW: Umgang mit Google Play Store Warnings "API"
 
Hi,

über eine FMX.Media.TCameraComponent wird ein Bitmap erzeugt:

CameraComponent1.SampleBufferToBitmap(imgCamera.Bi tmap, True);

Die Bitmap wird dann an den ZXING ScanManager übergeben:

ReadResult := ScanManager.Scan(fScanBitmap);

Wenn ich darüber nachdenke, ist hier ZXing eher nicht mit der Camera in Verbindung zu bringen, sondern die Delphi-Standardkomponente.
Aber wenn es die FMX-Standard-Componente ist, sollte die doch keine Android-Warnung auslösen?

Berechtigungen werden entsprechend eingeholt:
fPermissionCamera := JStringToString(TJManifest_permission.JavaClass.CA MERA);

Code:
procedure TMainForm.CameraPermissionRequestResult(Sender: TObject;
  const APermissions: TArray<string>;
  const AGrantResults: TArray<TPermissionStatus>);
begin
  if (Length(AGrantResults) = 1) and
    (AGrantResults[0] = TPermissionStatus.Granted) then
  begin
    CameraComponent1.Active := false;
    CameraComponent1.Quality := FMX.Media.TVideoCaptureQuality.MediumQuality;
    CameraComponent1.Kind := FMX.Media.TCameraKind.BackCamera;
    CameraComponent1.FocusMode := FMX.Media.TFocusMode.ContinuousAutoFocus;
    CameraComponent1.Active := True;
    lblScanStatus.Text := '';
  end
  else
    TDialogService.ShowMessage (rsNoPermission)
end;

procedure TMainForm.ExplainReason(Sender: TObject;
  const APermissions: TArray<string>; const APostRationaleProc: TProc);
begin
  TDialogService.ShowMessage
    (rsNeedPermissionCamera,
    procedure(const AResult: TModalResult)
    begin
      APostRationaleProc;
    end)
end;


Grüße,
Siggi

Rollo62 30. Mär 2021 08:10

AW: Umgang mit Google Play Store Warnings "API"
 
Schau mal hier.

Siggi 1. Apr 2021 17:23

AW: Umgang mit Google Play Store Warnings "API"
 
Hallo,
Zitat:

Zitat von Rollo62 (Beitrag 1486305)
Schau mal hier.

Danke, aber das hilft mir leider nicht weiter. Erstens beantwortet es nicht die Frage, warum für die Nutzung der CameraComponent eine Andriod-Warnung bezüglich NonSDKAPI erfolgt. Zweitens benötige ich das Bild als Image, um es an ZXing weitergeben zu können. Die von Dir empfohlene Kastri-Komponente verwendet aber laut Beschreibung ausschließlich Streams, um Metadaten mitgeben zu können.

Gruß,
Siggi

TurboMagic 1. Apr 2021 18:23

AW: Umgang mit Google Play Store Warnings "API"
 
So wie ich das verstanden habe lässt sich
der von Kastri gelieferte Stream auch in
eine Bitmap konvertieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz