Smartphone oder Tablet, wo ist die Grenze?

  • 3 Antworten
  • Letztes Antwortdatum
kleinerkathe

kleinerkathe

Dauer-User
242
Hi,
mal so eine "kleine" Frage an andere Entwickler ...

Wie unterscheidet ihr ob eure App gerade auf einem Tablet oder auf einem Smartphone ausführt?

Ich würde ganz gerne ein paar Konstanten definieren, die je nachdem ob man die App gerade auf einem Smartphone oder auf einem Tablet ausführt unterschiedlich sein sollen.

Variante 1
Habe jetzt das hier gefunden:
--> in den Layoutordner sw600dp (und ggf. sw700dp, wobei das meinem Verständnis nach nicht nötig ist) den Wert: "<bool name="isTablet">true</bool>" hinzufügen.


Variante 2
Oder man geht diesen Weg:
Code:
public static boolean isTablet(Context context) {
    return (context.getResources().getConfiguration().screenLayout
            & Configuration.SCREENLAYOUT_SIZE_MASK)
            >= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
Wobei hier bereits direkt bei Stackoverflow bemängelt wird, dass bspw. das Galaxy Note als Tablet eingestuft wird. (und dann vermutlich das Samsung Galaxy S4, das HTC ONE, das XPERIA Z, ... ebenso oder?)


Variante 3
Oder man geht über das Verhalten der Statusbar, wie hier beschrieben



---
Ich habe mich jetzt erstmal für Variante 1 entschieden, also über die XML. Aber ich würde mich freuen, wenn hier eine kleine Diskussion entstehen könnte, was den der "beste" Weg sei :)
 
Wir verwenden bei uns im Projekt Variante 2 und bisher hat sich niemand beklagt. Wir haben einige Testgeräte (aber kein Note), bei allen hat es bisher sauber funktioniert. HTC One und Galaxy S4 haben eine Screen Size normal, die werden also richtig erkannt.

Ist aber auf jeden Fall gut zu wissen, dass das Note als Tablet eingestuft wird ;)
 
Das Grundproblem ist doch eher, das der Übergang doch mittlerweile fließend ist.
Viele Geräte kann man ja als große Smartphones oder kleine Tablets ansehen.

Die Frage wäre daher erst mal, was du als Tablet ansehen würdest ;)

Ansonsten kannst du dich nur auf das berufen, was der Hersteller sagt über sein Gerät, also welche Screengröße es zurück gibt.

Somit Variante 2

PS: Laut stackoverflow spuckt das Note mit der neusten ICS Version auch die richtige Bildschirmgröße aus.
 
amfa schrieb:
Das Grundproblem ist doch eher, das der Übergang doch mittlerweile fließend ist.
Da "lob" ich mir doch iOS, da kann man ist die Abfrage ein klein wenig einfacher :cool2:

Mir ist klar, dass auf der einen Seite ich als Entwickler die Grenze zwischen Tablet und Phone selbst ziehen kann, aber auf der anderen muss sowas ja auch der Gerätehersteller/Android selbst eine Grenze ziehen :)

Vielen Dank euch zwei schon mal für den input, hab kurzerhand meine isTablet()-Methode angepasst :) (und spar mir dadurch zwei XML-Parameter)
 
Zurück
Oben Unten