App ständig auf empfang stellen

  • 14 Antworten
  • Letztes Antwortdatum
M

mitch_HD2

Fortgeschrittenes Mitglied
1
Hi... Mein nächstes Problem!

ich will damit meine APP die ganze zeit oder jede x Sekunden auf Empfang steht...

zur zeit empfange ich mit folgendem Code eine Temperatur
Code:
public static void Recieve() throws IOException{
	DatagramPacket p = new DatagramPacket(BufRec, BufRec.length);
	DatagramSocket s = new DatagramSocket(Port);
	s.receive(p);
	BufRecStr = new String(BufRec, 0, p.getLength());
	Log.d("Udp tutorial","REC" + BufRecStr);
	TempRecIn = (BufRecStr.substring(0,5)+ " °C");
	TempRecOut = (BufRecStr.substring(6,11)+ " °C");
	
	s.close();
	//fillTemps(TempRecIn,TempRecOut);
}

aber das macht der halt nur 1 mal... wie kann machen damit der halt non stop sich einen status holt? bzw. halt jede paar sekunden
 
lang ist es her....

denk für die Antwort..

ich bastel nun langsam weiter... und die nächste frage ist..

muss ich den jede x sekunden abfragen lassen?

oder kann ich es auch anders bewerkstelligen dass der client merkt dass sich etwas auf dem Server tut?

damit meine ich... auf dem Server passiert eine Aktion.. und diese soll an den Client geschickt werden (sofort)

der Client müsste also ständig lauschen...

klar mit einem Timer würde das gehen so wie ich es mir anfangs gedacht habe... aber vielleicht geht es auch schöner?
 
danke habe ich mir angeschaut... aber so wie ich es verstanden habe funktioniert es dann nur mit meinem google Account richtig?

oder ist es egal wessen Account das ist?

Merkt der nutzer dass es über GCM läuft?
 
OKay:) nochmal angeschaut...
das wäre nichts für mich.. da dies gut wär wenn ich einen Server hätte...

ich habe aber zu jedem Client auch einen Server.... (Haus Automatisierung)

Alternativen? ideen?
 
kann mir denn keiner helfen?:(
 
Evtl. ist da der Alarmmanager für zu gebrauchen ?
ungefähr so:

Alarm setzen (z.b. in Settings) mit entsprechendem Interval
Alarmreceiver zum "hören", der im onreceive den gefeuerten Alarm auswertet und
einen Service startet (der die eigentliche Arbeit/Abfrage macht)

in Manifest > permission setzen, alarmreceiver und Service einbinden nicht vergessen ;)
 
es geht mir mehr darum wie ich die app mit dem Server ständig aktuell halt.
zur Zeit mache ich es mit dem TimerTask... also jede 10 sek. sende der eine Anfrage an den Server ob es was neues gibt...
meine frage war jetzt ob man dies schöner lösen kann!?
 
Ja, GCM, das ist dafür da.

Du brauchst einen Server (das ist keine spezielle Hardware sondern einfach irgendein Rechner der dauerhaft läuft). Dieser sammelt fortlaufend alle Infos und benachrichtigt bei Bedarf das zuständige Gerät per GCM.

cu
 
ja aber wie schon gesagt ... nichts für mich...
da jeder client seinen Seperaten Server braucht
 
Nein, du brauchst EINEN Server der sich zentral um alle Clients kümmert.

Client ist ein Gerät auf dem deine App läuft.

Oder meinst du mehere Nutzer? Dann braucht jeder Nutzer seinen eigenen Server oder du bietest für sie Accounts auf deinem Server.

So ist das halt ;-) Für so was brauchen es Accounts oder eigene Server.
Alternativ kann deine App natürlich alle x Sekunden Pollen. Aber das saugt Daten und Akku.

cu
 
man man:)
ich glaube ihr versteht mich nicht!

ich weiß doch selber ob ich EINEN oder mehr server brauche!?

es geht um eine Haus Automatisierung... so und da brauch jedes "haus" einen Server... und bei mehreren Häusern ist es schlecht mit GCM zu machen!
 
Dem Server ist es egal wie viele Häuser er verwaltet ;-)

Du solltest schon deutlich sagen wenn du eine App erstellen willst, mit der jede Person ihre eigene Automatisierung betreuen kann.
Und es bleibt dabei ;-) Hier braucht jede Person einen Server oder du bietest einen Server auf dem diese Leute einen Account erstellen können. Denn dein einer Server kann selbstverständlich auch viele Häuser von anderen Leuten betreuen.

Ist halt so, tut mir ja Leid ;-)

cu
 
mitch_HD2 schrieb:
man man:)
ich glaube ihr versteht mich nicht!

ich weiß doch selber ob ich EINEN oder mehr server brauche!?

es geht um eine Haus Automatisierung... so und da brauch jedes "haus" einen Server... und bei mehreren Häusern ist es schlecht mit GCM zu machen!

Man man :)
Ich glaub, du hast mich nicht verstanden:
per Alarm/Alarmreceiver kannst du eine Aufgabe in regelmäßigen Intervallen aufrufen, auch außerhalb deiner App.
Du empfängst per Receiver vom System einen Broadcast ala "App mach mal was". Das "Was" des "machmal was" lässt du dann einen Service erledigen.
Und der Service kann doch einen bestimmten Server abfragen und sich die Daten holen, das liegt doch an deiner Programmierung des Services.
Den Server (und evtl. die Abfrageintervallzeiten) macht man dann in der App angebbar (z.B. Settings) und schon haste
für jedes Gerät eine eigene "Client-Server"-Methode.

ps:
ich bin jetzt mal davon ausgegangen das du sozusagen eine Insellösung suchst ala
1 Haus mit einem eigenem Server und einer App als steuerungssoftware und der
Rest der Welt interessiert nicht.
Möchtest du aber zentral mehrere Häuser verwalten, wären da die oben genannten Möglichkeiten
die besseren Optionen.
 
Zuletzt bearbeitet:

Ähnliche Themen

G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
599
Gerdchen07
G
L
Antworten
2
Aufrufe
555
Lexub
L
migi01
Antworten
26
Aufrufe
1.991
migi01
migi01
Zurück
Oben Unten