… oder: Warum ich via 3G-/2G-Mobilfunk bislang nur so schwierig mit dem N1 online kam – nun aber doch, nachdem ich APNdroid nicht mehr verwende.
In meinem letzten Blog hatte ich (unter anderem) geschrieben, dass das Nexus One bei mir Probleme macht (zugegeben: das „bei mir“hatte ich erst später eingefügt), wenn es nach längerer WLAN-Konnektivität auf Mobilfunk-Internet umschwenken soll, und dass es ziemlich frustig ist, dass ich dafür jeweils einmal zeitaufwendig rebooten muss.
Daran halte ich fest – freundlicherweise hat sich ja nach dem Mini-Flamewar mit derThomas mit mr.x noch jemand gefunden, der meine Probleme bestätigen konnte. Trotzdem hat mich die Auseinandersetzung mit derThomas inspiriert, der Sache noch einmal intensiver nachzugehen.
Fangen wir mit dem Benutzungsszenario an: Nicht alle unter uns haben volumen- und zeitunbeschränkte Datentarife – ich zum Beispiel nicht. … Yeah, c’mon give it to me –ich hör’s schon schalmeien: „Haha, er kann sich zwar ein N1 leisten, aber keine anständige Datan-Flatrate.“ Yadda-yadda-yadda … Könnte ich mir schon leisten, entspricht aber nicht meinem Benutzerverhalten.
Unabhängig vom verwendeten Datentarif soll es aber doch Leute geben, die es nicht gern sehen, wenn ihr Mobiltelefon unterwegs nach Lust und Laune nach Hause oder wer-weiß-wohin funkt. Jedoch: Ähnlich, wie WiFi, Bluetooth und GPS selektiv deaktivierbar ist, ist es unter Android eben nicht so einfach möglich, Datenverbindungen via 3G und 2G selektiv zuzulassen oder zu verbieten.
In diese Bresche springen Tools wie „APNdroid“. Deren Wirkmechanismus ist wie folgt: Dem APN-Hostnamen werden per Fingertipp aufs Widget ein paar Zeichen angefügt, wodurch derselbe ungültig bzw. nicht konnektierbar wird – folglich kann sich das Handy nicht mehr mit dem Internet verbinden. … So weit die Programmbeschreibung und die positiven User-Kritiken.
Nun ist es aber wohl so, dass zumindest auf meinem Nexus One vor allem nach längeren WLAN-Phasen das Reaktivieren des Mobilfunk-Internets selten funktioniert. Sprich: Der APN-Hostname wird zwar wieder restauriert, das N1 unternimmt auch prompt eine Kontaktaufnahme – aber die Internetverbindung funktioniert dann trotzdem nicht korrekt, bis hin zu der von mir beobachteten IOException beim HTTP-Request. Soweit ich das erkennen kann passiert das vor allem dann, wenn das N1 mit bereits verschleiertem APN-Hostnamen bootet.
Wie ich feststellte gibt es aber noch einen zweiten Trick. Man lege parallel zum funktionstüchtigen APN einen zweiten, bewusst nicht funktionstüchtigen an. Statt eines Hostnamens trage man dort „localhost“ (lies: das Nexus One selbst) ein. Wählt man diesen APN, kann das N1 sich auf diese Weise natürlich nicht selbst am Schopf aus dem Offlinesumpf ziehen – und bleibt folglich offline.
Erstaunlich, aber wahr: Bei einer Simyo-Karte funktioniert diese Vorgehensweise absolut zuverlässig. Mein Rückschluss ist, dass es weniger darauf ankommt, dass zwischen einem gültigen und einem ungültigen APN-Host umgeschaltet wird. Sondern vielmehr darum, dass das Modifizieren des aktiven APN-Hosts via APNdroid Probleme macht.
Und so kann ich problemlos im (Um)weg über
- „Einstellungen“
- „Drahtlos und Netzwerke“
- „Mobile Netzwerke“
- „Zugangspunkte“
durch beherzten Klick auf meinen gültigen und meinen ungültigen APN den 3G-/2G-Internetzugang aktivieren oder deaktivieren.
… Da das natürlich deutlich zu umständlich ist, legt man sich am einfachsten mit „Any Cut“ einen Shortcut auf die „APNs“-Activity auf den Homescreen – und schon geht man mit nur nur zwei Fingertipps mobil on- bzw. offline.
Nebenbei bemerkt: Das oben Beschriebene funktioniert bei mir reproduzierbar problemlos mit einer Simyo- und einer MedionMobile-SIM im E-Plus-Netz über den APN-Host internet.eplus.de.
Nicht jedoch mit einer Klarmobil-SIM im O2-Netz. Hier gibt es schlichtweg keine ungültigen APNs: Egal, welchen APN-Host man einträgt, selbst „localhost“ oder „.“ oder „mirdochegal“ mit beliebigen Benutzernamen und Passwörtern – O2 akzeptiert und verbindet. APNdroid wäre also per se absolut machtlos.
Ich habe lediglich einen einzigen APN-Host gefunden, mit dem bei Klarmobil/O2 kein Connect zu Stande kommt: Ein Leerzeichen. Das jedoch scheint das mobile IP-Routing aber so sehr durcheinander zu bringen, dass ich in den meisten Fällen nach Wechsel auf den gültigen APN das Nexus One doch wieder rebooten muss, um online gehen zu können. #Fail.
… Abschlussbemerkung: Mit dem Apnoe-Tauchen als Extremsportart hat dieser Blog-Beitrag natürlich nichts zu tun. Obgleich man das beschriebene Unvermögen des Google Nexus One zum mobilen APN-Onlinegang durchaus mit totalem Atemstillstand gleichsetzen könnte.
Kann es vielleicht sein, dass das ganze Problem eher auf Linux beruht, als auf dem Nexus One? Die Veränderungen des APN beziehen sich nur auf die Konnektivität über die Funkschnittstelle. Das selbst ist erst mal kein Netzwerkadapter, selbiger muss erst (vermutlich beim ersten Einrichten des APN) virtuell erstellt werden.
Jetzt änderst Du den APN Namen in etwas Unerreichbares, der APN hat aber schon einen Netzwerkadapter, sprich der wird wegen Veränderungen im Gateway (vermutlich) auf default Werte zurückgesetzt.
Wenn Du den APN Namen jetzt wieder zurücksetzt, werden aber (wiederum vermutlich) die Adapterdaten nicht aufgefrischt, da nur der Name wechselt, aber nichts am Gateway, da er sich ja nicht damit verbinden kann mit den noch gespeicherten falschen Daten. Erst beim Reboot wird eine neue Negotiation mit der Mobilfunkstation stattfinden, die ein refresh der Netzwerkdaten erfordert.
Für diejenigen, denen das jetzt weit hergeholt vorkommt zwei Szenarien:
1. Linux auf einem PC (zumindest vor ein paar Jahren, als wir noch ISDN benutzt haben…) mit PPP Zugang. Da passierte genau dasselbe. Die automatische Konfiguration des virtuellen Netzwerkadapters war bei Ändern der ISDN Verbindungsdetails und einem Verbindungsversuch im Eimer, und nur ein Reboot half.
2. Windows XP (vor SP2): Bei einem LAN Netzwerkadapter mit DHCP und abgestöpseltem Kabel ein IP Refresh auslösen. Man bekommt eine 169.xxx IP Adresse. Kabel wieder einstöpseln und nix passiert, IP refresh auslösen, und es passierte immer noch nix. Erst ein Deaktivieren/Aktivieren des Adapters half.
Wollte ich damit irgendwas sagen? Eigentlich nicht, vielleicht nur, dass Google hier nicht allein die Schuld an der schlechten Benutzbarkeit trägt, sondern dass sich das auf viele Schultern verteilt. Sei es die der Linux Entwicklergemeinde, die mit Mobilfunkzugängen etwas Probleme hat, was einfach daran liegt, dass Netzwerkprovider sich nicht gerne in ihre Karten schauen lassen und Mobilfunkstandards schwer zu meistern sind im Gegensatz zu TCP/IP Standards, die es seit fast einem halben Jahrhundert gibt. Oder sei es die Netzwerkbetreiber selbst, die bisher wenig Energie in die Unterstützung offener Endgeräte gesteckt haben, da mit Bundles und geschlossenen Plattformen schlicht mehr Geld zu verdienen war.
So, jetzt hab Ich Deinen Blog genug gehijackt Gero, vielleicht brauch ich doch noch meinen eigenen. Und sei es nur, um Dir zu antworten 😉
Jederzeit, alter Freund!
Ach so, was mir retrospektiv noch einfiel zu Deinen Ausführungen:
„It’s been a long road – getting from there to here …“ (whistling a well known melody)
http://www.youtube.com/watch?v=-8OpsPok6iQ
hab seit gestern Abend 2.2 installiert.es hat sich einiges beim Punkt mobile Netzwerke. geändert.hier kann man jetzt auch innerhalb von android die mobile Verbindung ausschalten.muss jetzt noch testen,wie lange das funktioniert.mein konnektivitätsproblem gab es immer erst nach einigen Stunden aktiver wlan -verbindung…übrigens kann man jetzt auch den o2-apn standardmäßig bekommen,wenn man auf standardeinstellungen zurück setzen anklickt… also ich bin ganz optimistisch, dass es jetzt mit o2 klappt…
Cool – danke für den Hinweis, ich hatte noch gar nicht mitbekommen, dass Android 2.2 „Froyo“ bereits teilweise OTA installiert wird, und dass man es auch manuell herunterladen und dann installieren kann.
Wie auch immer: APNdroid hat damit endgültig ausgedient. Ich habe es sowohl mit einer E-Plus-Karte (Simply) als auch mit einer O2-Karte (Klarmobil) ausprobiert: Korrekten APN konfigurieren, und anschließend an und ausknipsen wie man will. Dadurch, dass das eine offizielle Systemeinstellung ist, vermute ich einfach mal, dass Android die erforderlichen Initialisierungen korrekt unternimmt. – Ich musste auch nicht mehr rebooten, um O2 nach dem Kartenwechsel in Gang zu bringen.
… Ich wechsele trotzdem zum Monatsende zurück zu D1, aber ich bin fest davon überzeugt, dass es damit auch keine Probleme geben wird.