AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Elegante Methode um FireOS zu erkennen

Elegante Methode um FireOS zu erkennen

Ein Thema von philipp.hofmann · begonnen am 20. Apr 2019 · letzter Beitrag vom 21. Apr 2019
Antwort Antwort
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
66 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Elegante Methode um FireOS zu erkennen

  Alt 20. Apr 2019, 21:22
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

Geändert von TBx (21. Apr 2019 um 08:32 Uhr) Grund: Formatierung korrigiert
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
955 Beiträge
 
Delphi 7 Professional
 
#2

AW: Elegante Methode um FireOS zu erkennen

  Alt 20. Apr 2019, 21:47
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'?
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
66 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Elegante Methode um FireOS zu erkennen

  Alt 21. Apr 2019, 08:38
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf