Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Elegante Methode um FireOS zu erkennen (https://www.delphipraxis.net/200446-elegante-methode-um-fireos-zu-erkennen.html)

philipp.hofmann 20. Apr 2019 21:22


Elegante Methode um FireOS zu erkennen
 
Hallo allerseits,

normalerweise erkannt man ja schon am Betriebssystem, woher eine App stammt.
Nicht so bei Android, wo eine App aus den Google Play Store oder dem Amazon Appstore (Fire-Tablets) stammen kann.
Gibt es eine elegante Methode, um festzustellen, ob die Software auf einem FireOS-Tablet läuft (Amazon) oder auf "Standard"-Android (und somit aus dem Google Play Store bedient wird)?

Mir ist jetzt nur eingefallen, alle aktuellen Fire-Device-Kenner abzufragen (wobei man wahrscheinlich in 99% der Fälle schon mit den ersten beiden Buchstaben "KF" für Kindle-Fire, richtig liegt:

Delphi-Quellcode:
function isFireOS():boolean;
begin
  {$IFDEF ANDROID}
    if ( pos( JStringToString( TJBuild.JavaClass.MODEL), 'KFOT, KFTT, KFJWI, KFJWA, KFSOWI, KFTHWA, KFTHWI, KFAPWA, KFAPWI, KFARWI, KFASWI, KFSAWA, KFSAWI, KFTBWI, KFMEWI, KFFOWI, KFGIWI, KFAUWI, KFSUWI, KFKAWI, KFDOWI, SD4930UR') > 0) then
      Result:=true
    else
      Result:=false;
  {$ELSE}
    Result:=false;
  {$ENDIF}
end;
Nachteil an der Methode ist, dass man die Device-IDs pflegen muss, wobei Amazon jetzt auch nicht alle naselang ein neues Device rausbringt.

Grüße, Philipp

Delphi.Narium 20. Apr 2019 21:47

AW: Elegante Methode um FireOS zu erkennen
 
Zugegebenermaßen verstehe ich nix von dem Thema, aber wäre die Nutzung einer Stringliste nicht einfacher? Sowas in der Art?
Delphi-Quellcode:
function isFireOS():boolean;
var
  sl : TStringList;
begin
  {$IFDEF ANDROID}
    sl := TStringList.Create;
    sl.LoadFromFile('Fire-Device-Kenner.txt');
    Result := sl.IndexOf(JStringToString(TJBuild.JavaClass.MODEL)) > -1;
    sl.Free;
  {$ELSE}
    Result:=false;
  {$ENDIF}
end
Bei Änderungen wird der Datei 'ne neue Zeile "verpasst" und gut is'?

philipp.hofmann 21. Apr 2019 08:38

AW: Elegante Methode um FireOS zu erkennen
 
Der Effekt ist ja der gleiche, ich muss bei jedem neuen Device, welches Amazon veröffentlicht die Liste anpassen.
Mir geht es darum, gibt es eine Lösung, die solche hardcodierten Anpassungen (ob die in einem File stehen oder im Code ist für mich relativ gleichwertig) unnötig macht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 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