4G oder LTE: Wonach richtet sich die Anzeige im Status?

From Android Wiki
Anzeige LTE in der Statusleiste
Anzeige 4G in der Statusleiste

4G und LTE werden als Begriffe, nicht nur bei Android, sondern auch bei vielen Netzbetreibern und Hilfeseiten, oft synonym verwendet. Auch bei Android ist es (offenbar) von Gerät zu Gerät unterschiedlich, ob in der Statuszeile bei aktivierter Datenverbindung ein Symbol mit 4G oder LTE angezeigt wird. Auf dieser Seite zeigen wir, wie diese unterschiedlichen Anzeigen zustande kommen, und wovon es abhängt, welches Symbol angezeigt wird.

Herkunft[edit | edit source]

Beide Symbole bezeichnen bei den meisten Geräten/Ländern das Selbe, unabhängig davon, welches Icon verwendet wird. Das Smartphone hat sich bei beiden Symbolen in das LTE-Netz (Long Term Evolution) welches hier in Europa das Netz der vierten Generation (4G) bezeichnet wird, eingebucht – die Unterscheidung in Europa ist also rein visuell und für den Nutzer bestimmt.

Das was in Europa als LTE bezeichnet wird ist eigentlich LTE-Advanced, oder 4G – Mobilfunk der vierten Generation, die dritte Generation ist die UMTS/HSPA (3G) und die zweite Generation ist GSM/GPRS/EDGE (2G). Das ursprüngliche LTE ist eigentlich ein Vorgänger und müsste 3.9G heissen.[1]

In Europa hat man schon in den 90er-Jahren mit GSM (damals: Groupe Spécial Mobile – heute: GSM bzw Global System for Mobile_Communications (GSMC)) ein Länderübergreifendes System installiert und es damals schon als Netz der zweiten Generation (2G) bezeichnet.[2] Daher kommt wohl auch dass der US-amerikanische Anbieter AT&T die einzige Ausnahme ist, welcher für eine HSDPA+ Verbindung 4G und für eine LTE Verbindung 4G LTE anzeigt. GSM war zum Beispiel in den USA fast unbekannt, und bei USA-Reisen wurden von deutschen Anbietern für Reisende extra Geräte angeboten.

4G oder LTE: Der verwendete Provider entscheidet[edit | edit source]

Die Anzeige 4G oder LTE wird im ROM entschieden. Dies geschieht in aller Regel auf Basis des Providers, welcher für die mobile Datenverbindung benutzt wird. Die Anzeige LTE ist insbesondere für den deutschen Markt vorgesehen, da die Netzbetreiber LTE hierzulande auch als LTE und nicht als 4G bewerben. Um Verwirrungen vorzubeugen, wird durch eine Konfiguration für verschiedene Provider ein LTE Icon anstelle eines 4G Icons angezeigt.

technische Umsetzung[edit | edit source]

Die Statusbar ist Teil der SystemUI.apk, welche glücklicherweise Teil des AOSP Projektes ist und der Source Code somit öffentlich zur Verfügung steht.[3] Die Icons für die Anzeige 4G/LTE werden in der Klasse TelephonyIcons definiert:[4][5][6]

static final MobileIconGroup FOUR_G = new MobileIconGroup(
    "4G",
    TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
    TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
    AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
    0, 0,
    TelephonyIcons.TELEPHONY_NO_NETWORK,
    TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
    AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
    R.string.accessibility_data_connection_4g,
    TelephonyIcons.ICON_4G,
    true,
    TelephonyIcons.QS_DATA_4G
    );

static final MobileIconGroup LTE = new MobileIconGroup(
    "LTE",
    TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
    TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
    AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
    0, 0,
    TelephonyIcons.TELEPHONY_NO_NETWORK,
    TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
    AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
    R.string.accessibility_data_connection_lte,
    TelephonyIcons.ICON_LTE,
    true,
    TelephonyIcons.QS_DATA_LTE
    );

Die Icons selbst sind (seit Commit b3eb8919) als Vektor-Grafiken definiert: 4G, sowie LTE. Die Entscheidung, welches Icon wann verwendet wird, geschieht allerdings in der Klasse MobileSignalController:[7]

if (mConfig.show4gForLte) {
    mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE, TelephonyIcons.FOUR_G);
    if (mConfig.hideLtePlus) {
        mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
                TelephonyIcons.FOUR_G);
    } else {
        mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
                TelephonyIcons.FOUR_G_PLUS);
    }
} else {
    mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE, TelephonyIcons.LTE);
    if (mConfig.hideLtePlus) {
        mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
                TelephonyIcons.LTE);
    } else {
        mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
                TelephonyIcons.LTE_PLUS);
    }
}

Die Konfigurationsoption show4gForLte wird über die Config Klasse in der Datei NetworkControllerImpl.java bereitgestellt.[8] Dieser boolsche Wert wird aus einem PersistableBundle gelesen, welcher durch den CarrierConfigManager bereitgestellt wird. Diese Provider-abhängige Konfiguration ist Bestandteil der in Android verfügbaren Carrier configuration Komponente. Diese Komponente erlaubt es privilegierten Apps ab Android 6.0 Marshmallow "Marshmallow" die Änderung bestimmter, Provider-abhängiger Einstellungen, ohne dabei Eingriffe in das Betriebssystem vornehmen zu müssen. Dadurch wird die Möglichkeit, entsprechende Werte zu ändern, unabhängig von Updates des Betriebssystem dynamischer möglich.

Eine entsprechende Implementierung einer solchen App ist bspw. die, ebenfalls im AOSP enthaltene, CarrierConfig app. Diese App liest die entsprechenden Konfigurationen für den Carrier des aktuellen Netzwerks (sofern eine entsprechende Konfiguration vorhanden ist) aus Konfigurationsdateien, die mit der App gepackt sind.

In diesen Konfigurationen ist bspw. zu erkennen, dass beim Netz von Vodafone Deutschland das 4G Icon anstelle des LTE Icons angezeigt wird:[9]

<boolean name="show_4g_for_lte_data_icon_bool" value="true"/>

Die entsprechende Carrier ID 25 wird aus der CarrierID-Liste von Android bezogen und entsprechend dem Mobilfunknetz selektiert.[10]

Als weiteres Beispiel hat Fonic mit der CarrierID 2328 in den Konfigurationsdateien der CarrierConfig app keine entsprechende Konfiguration. Daher wird in diesem Fall der Standardwert (false) angenommen und LTE anstelle von 4G als Icon angezeigt.

Siehe auch[edit | edit source]

Einzelnachweise[edit | edit source]

  1. 3,9G / 4G / LTE:
  2. GSM bzw Global System for Mobile_Communications (GSMC). In: www.Wikipedia.org. Abgerufen am 31. März 2016.
  3. platform/frameworks/base - Git at Google. In: android.googlesource.com. Abgerufen am 19. November 2015.
  4. android/platform_frameworks_base. In: GitHub. Abgerufen am 19. November 2015.
  5. android/platform_frameworks_base. In: GitHub. Abgerufen am 19. November 2015.
  6. android/platform_frameworks_base. In: GitHub. Abgerufen am 19. November 2015.
  7. aosp-mirror/platform_frameworks_base. In: GitHub. Abgerufen am 3. Januar 2020 (english).
  8. aosp-mirror/platform_frameworks_base. In: GitHub. Abgerufen am 3. Januar 2020 (english).
  9. assets/carrier_config_carrierid_25_Vodafone.xml - platform/packages/apps/CarrierConfig - Git at Google. In: android.googlesource.com. Abgerufen am 3. Januar 2020 (english).
  10. assets/carrier_list.textpb - platform/packages/providers/TelephonyProvider - Git at Google. In: android.googlesource.com. Abgerufen am 3. Januar 2020 (english).