Java Internteverbindung aufrecht erhalten, Android

domi1511

Lieutenant
Registriert
März 2006
Beiträge
934
Hallo Jungs/Mädels,

ich starte gerade mit der erstellung einer kleinen Android Applikation. Diese soll verhindern, dass die UMTS/GPRS,... verbindung ins Internet vom Smartphone disconnected wird.

Mein Ansatz ist es eine Socket-Verbindung zu einem Server aufzubauen und falls das nicht reichen sollte, um einen Disconnect zu verhindern, einfach kleine Päckchen drüber zu senden.

Gehen wird es vermutlich, jedoch stell ich mir dabei die Frage ob das nicht auch mit weniger Aufwand funktioniert?

Gibt es eine andere Möglichkeit die Verbindung aufrecht zu erhalten?

Vielen Dank schon einmal im Vorraus für eure Tipps.
 
Naja, warum die Symptome bekämpfen wenn man die Ursache bekämpfen kann?

Warum wird die Verbindung gekappt? - Timeout? Ein anderer Prozess? Das OS selbst? Ich denke die Frage solltest du dir zuerst stellen...
 
Soweit ich das Beurteilen kann kappt das OS die Verbindung um Datenvolumen und Strom zu sparen (?).
Ob man Android sagen kann dass die Verbindung nicht beendet werden soll habe ich noch nicht geprüft, werde ich aber jetzt Prüfen.

Das genaue Problem: Installiere ich nun ein Programm welches alle paar Minuten eine kurze Verbindung benötigt (Abfrage von E-Mails,...) , dann verbindet sich das Smartphone kurz mit dem Internet und disconnected anschließend wieder.
Pro Stunde sind das dann im Schnitt 30 - 50 Verbindungen, a 1 KB.

Leider rundet mein Mobilfunkanbieter nach jeder Verbindung das eine KB auf 128 KB auf und verrechnet das... .

Verbrauche ich nun wirkliche 100 MB im Monat macht das beim Provider ein Datentransfer von rund einem GB aus.
 
naja, ich weiss nicht, aber auch bei T-Mobile steht z.B.
Die Abrechnung erfolgt im 100-KB Datenblock.
Und und Emails kommen bei mir via Push, Twitter baut jede Stunde ne Verbindung auf genauso wie einige andere Dienste und naja diese Dienste machen bei mir aber nicht das Datenvolumen aus, sondern vielleicht 20MB(wenns hochkommt) von guten 500-800MB im Monat.

EDIT:
Achja und außerdem würde das halten der Verbindung nichts daran ändern mit welchen Datenblöcken der Provider abrechnet, den durch eine gehaltene Verbindung ändernt sich ja auch nicht die häufigkeit und die Größe der zu ladenen Daten. Außerdem bräuchtest am Tag bestimmt 50 Wechsel Akkus :D
 
Zuletzt bearbeitet:
Bist du sicher, dass er aufrundet, oder sind es nur 100kb blöcke? letzteres würde nur bedeuten, dass ab dem ersten, hundertundersten usw. abgerechnet wird, was aber etwas völlig anderes ist als aufzurunden.

Ansonsten würde ich dir die Klasse Inet.Adress mit ihrer Methode isReachable() ans Herz legen, ist sowas ähnliches wie anpingen.
 
Entschuldigt, aufgrund schulischer Arbeiten konnte ich mich die letzten Tage nicht um das Thema kümmern.

Ein Providerwechsel kommt nicht in Frage, würde zu teuer kommen.
Ich hätte dann auch nicht hier im Programmierbereich gepostet.
Hier habe ich für euch einen kleinen Auszug aus der Rechnung, da ihr mir wie es scheint nicht glaubt:
HTML:
Uhrzeit                 Service   Dauer                  Volumen(KB)  Volumen gerundet(KB)
14:56		UMTS	00:00:07	2,74	128
15:01		UMTS	00:00:06	2,74	128
15:06		UMTS	00:00:07	2,74	128
15:11		UMTS	00:00:07	2,74	128
15:16		UMTS	00:00:06	2,74	128
15:21		UMTS	00:00:03	0,69	128
15:21		UMTS	00:00:03	0,69	128
15:21		UMTS	00:00:03	0,69	128
15:21		UMTS	00:00:03	0,69	128
15:26		UMTS	00:00:07	2,74	128
15:31		UMTS	00:00:07	2,74	128
15:36		UMTS	00:00:07	2,74	128
15:41		UMTS	00:00:07	2,74	128

Halte ich nun die Verbindung aufrecht, so würde nicht dauernd aufgerundet werden.
Hätte ich in diesem Beispiel von 14:56 - 15:41 eine dauerhafte Verbindung so würde nur einmal auf 128 KB aufgerundet werden.
Wie viel Mehrleistung ich vom Akku brauche wird sich zeigen.

Um nun wieder zurück zum programmieren zu kommen. Danke carom, werde mir die Klasse mal ansehen.
 
Falls das mit Inet nicht geht könntest du auch Socket mit setKeepAlive() probieren. (wäre aber wahrscheinlich die schlechtere Lösung, da du dort einen Verbindungspartner brauchst.)
 
Zurück
Oben