Android Service ferngesteuert starten

Sokdante

Mitglied
Guten Tag, wie oben schon beschrieben, suche ich eine Möglichkeit, einen Service eines anderen Handys von meinem aus zu starten.
Eine Suche hat mir leider nichts geholfen, weiß nicht genau, wonach ich suchen soll.

Es geht um eine App, die zufällige Rechenaufgaben stellt, die zeitlich auch rein zufällig sind.
Die App läuft wunderbar im Hintergrund und zeigt die Rechenaufgabe an, die in einer bestimmten Zeit gelöst werden muss. Dennoch verbraucht der Service im Hintergrund mehr Akku als gedacht.
Ich wollte dazu eine App schreiben, die den Service der Rechenapp starten und auch wieder stoppen kann. Mir ist klar, dass ich dazu noch eine dritte App für einen Server schreiben muss, der die Anforderung zum Starten gibt. Allerdings weiß ich im Moment nicht wie.

Welche Methode ist besser geeignet, Sockets oder Push Notification?

Freue mich über alle, die mir versuchen zu helfen.
Danke, danke im voraus .
 
K

kneitzel

Gast
Wenn Du nur zu bestimmten Zeiten etwas machen willst, dann wäre evtl. die JobScheduler API das, was Du suchst.
https://developer.android.com/reference/android/app/job/JobScheduler

Aber ich habe damit noch nichts gemacht... Damit hättest Du aber eine App, die sich da halt selbst tasks setzt und nach meinem Verständnis nicht ständig durchlaufen muss.

Falls Du das aber auch zentral gesteuert haben willst, dann wäre evtl. auch denkbar, dass Du Firebase Cloud Messaging nutzt. Dann wird das halt von außen getriggert wann da welcher Client was bekommt... (Also wohl das, was Du als Push Notification bezeichnet hast).

Socket ist problematisch, denn da muss
a) Das gerät erreichbar sein. Das muss nicht gegeben sein. Viele Provider nutzen freie Subnetze (also z.B. 10.*) für die TCP/IP Verbindungen und da ist das Gerät von außen nicht erreichbar.
b) Die App muss durchlaufen und auf dem Socket hören. Damit hast Du wieder das Problem mit dem Stromverbrauch (nach meinem Verständnis).

Aber evtl. antwortet noch jemand (wie z.B. @mihe7) mit mehr Erfahrung in der Android Entwicklung ...
 

mihe7

Top Contributor
Ich habe sowas in der Richtung privat mal mit einem alten Android-Gerät zur Temperaturüberwachung gemacht: auf SMS lauschen, Foto von Thermometer machen und per Mail (UMTS) verschicken. Hierzu wird einfach ein BroadcastReceiver registriert. Das Handy wurde täglich 2x per Zeitschaltuhr geladen, der Akku hat das ungefähr 3 Jahre mitgemacht (wobei im Sommer abgesteckt war), bis er vor kurzem seinen Geist aufgab :-(

Ansonsten halten sich meine Erfahrungen bzgl. Akkulaufzeiten sehr in Grenzen (Apps, die bei uns in der Arbeit entwickelt werden, sind für Leute, die in der Regel einen Zigarettenanzünder in der Nähe haben ;))

Letztlich geht es ja um eine Form von Instant Messaging und dafür gibt es bereits Lösungen. Grundsätzlich frage ich mich allerdings, warum der Aufgabensteller auf einem Android-Gerät laufen soll, wenn dieser auch noch zufällig Aufgaben stellt...

MQTT ist ein, ich meine von IBM entwickeltes Protokoll, das auf Low-Power-Devices ausgelegt wurde. Ein Keep-Alive von 240s zieht lt. http://stephendnicholas.com/posts/power-profiling-mqtt-on-android etwa 0,15 % des Battery-Levels je Stunde, wenn das Teil per 3G verbunden ist. Hier bräuchtest Du einen MQTT-Broker.

Wenn der Aufgabensteller nicht für Anfragen erreichbar sein muss, würde ich es, wie @JustNobody schon geschrieben hat, einfach mit einem JobScheduler umsetzen. Auch hier bräuchtest Du einen Broker. Wenn Du keinen MQTT-Broker einrichten kannst, keinen öffentlichen verwenden willst und auch keinen bezahlen willst, könntest Du an der Stelle auch selbst eine Billig-Lösung zusammenschustern (z. B. Server-Requests via normales HTTP, Clients via WebSocket).

Discord/WhatsApp -> keine Ahnung, was die APIs so bieten. E-Mail (SMTP/IMAP) würde mir noch einfallen; kommt halt darauf an, wie viele Clients bedient werden sollen.
 

Sokdante

Mitglied
Ich habe es noch nicht geschafft, setze mich heute Abend dran.
Was mir gelungen ist, ist den Akkuverbrauch zu reduzieren mittles einem Timer.

Leider habe ich da ein neues Problem.
In einem Service schreibe ich eine Datei über den MediaRecorder, die in einem Ordner gespeichert wird und wenn die Datei existiert, immer um 2 erhöhen.
Ich möchte statt auf den Speicher zu schreiben, die Datei direkt in den Firebase Storage uploaden.

Hier wird die Datei in das Verzeichnis geschrieben.

Code:
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
File file = new File(path, child:"File");

for (int num = 0;file.exists(); num++) {
file = new File(path, child:"File" + (num++));
}

mediaRecorder.setOutputFile(file);


Ich habe vieles versucht und umgeschrieben, bin aber nicht darauf gekommen den Code so zu formulieren, um statt auf den Speicher zu schreiben, die Datei auf den Firebase Storage Server upzuloaden.
Kennt sich jemand diesbezüglich aus?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Naxon89 Threads Android AysncTask => Überprüfen, ob ein Ergebniss schon vorliegt Java Basics - Anfänger-Themen 5
Bene247 Android App (Trinkspiel) Java Basics - Anfänger-Themen 1
N Android Studio notwendig oder sinnvoll? Java Basics - Anfänger-Themen 7
S Gibt es irgendeine Möglichkeit, dies zu tun?(Android Studio) Java Basics - Anfänger-Themen 1
I Java Anwendung auf Android portieren Java Basics - Anfänger-Themen 1
A Alternativen zu Android Studio ??? Java Basics - Anfänger-Themen 14
L Android Activity Java Basics - Anfänger-Themen 10
A Wie gebe ich bei android eine string im programm aus? Java Basics - Anfänger-Themen 4
F JAVA oder Android Studios Java Basics - Anfänger-Themen 3
J Datentypen Komm in einem Android Buch mit Java nicht weiter... Java Basics - Anfänger-Themen 7
L Problem mit Android ListView Java Basics - Anfänger-Themen 2
W Pfeiltasten im Android Studio Java Basics - Anfänger-Themen 1
A Erste Schritte Zu Android exportieren Java Basics - Anfänger-Themen 6
M Spracherkennung in Android Java Basics - Anfänger-Themen 3
S Wie entwickelt man eine Library die auf dem JRE und Android laeuft..? Java Basics - Anfänger-Themen 0
A Android-Lib: Sourcecode Generator mittels Annotation Processing Java Basics - Anfänger-Themen 0
A Random String in TextView (Android)? Java Basics - Anfänger-Themen 2
T Android Display in 4 teilen... Java Basics - Anfänger-Themen 3
T Android opengl will net.. Java Basics - Anfänger-Themen 3
T Android App: Laden dauert lange Java Basics - Anfänger-Themen 1
T IllegalStateExeption Android App Java Basics - Anfänger-Themen 19
M Variablen Zähler funktioniert nicht - Android App Java Basics - Anfänger-Themen 3
A Suche Programmierer für Android App Java Basics - Anfänger-Themen 1
K Android vs Java+libgdx Java Basics - Anfänger-Themen 1
K Android 2d engine mit fortlaufendem hintergrund Java Basics - Anfänger-Themen 1
G Android App Java Basics - Anfänger-Themen 3
kaoZ Input/Output Typprüfung (Android ) Java Basics - Anfänger-Themen 1
kaoZ Input/Output Android : Deserialisieren von mehreren Objekten in einer Datei Java Basics - Anfänger-Themen 0
K Erste Schritte Android Recources (MyFirstApp) Java Basics - Anfänger-Themen 4
B Variablen Android: Spinner-Eintrag einen versteckten numerischen Wert zuordnen und Variable übergeben Java Basics - Anfänger-Themen 3
kaoZ Alternative zu ToggleButton (Android/Java) Java Basics - Anfänger-Themen 12
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
C Android APP - Load More Button und beschleunigung... Java Basics - Anfänger-Themen 2
M javamail android app Java Basics - Anfänger-Themen 3
M Wie lernt man Android Java Basics - Anfänger-Themen 22
J Android R.Java verändern!? Java Basics - Anfänger-Themen 6
J Android app Satzteile Java Basics - Anfänger-Themen 3
S Android fuer Swing-Kenner..? Java Basics - Anfänger-Themen 6
A Android Datenbank gaaanz einfaches Insert geht nicht - warum? Java Basics - Anfänger-Themen 4
A BufferedImage in Android einbinden - Bild spiegeln -wie? Java Basics - Anfänger-Themen 4
eLogic Android - Fehler "stopped unexpectedly" Java Basics - Anfänger-Themen 7
E Android: OnClickListener erkennt Buttons nicht Java Basics - Anfänger-Themen 7
E Buttons in Android generieren? Java Basics - Anfänger-Themen 4
E Welcher Package Name bei Eclipse/Android? Java Basics - Anfänger-Themen 2
6 Best Practice Feedback zu Service / JUnit Tests Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
izoards Prunsrv - Windows Service - .bat file starten Java Basics - Anfänger-Themen 84
I Kommunikation "normaler PC" mit lokaler Software an "Cloud Service" und umgekehrt Java Basics - Anfänger-Themen 15
H Service/Task updateProgress Java Basics - Anfänger-Themen 36
S Mit Cloud Messaging Service starten Java Basics - Anfänger-Themen 2
T Windows service erstellen Java Basics - Anfänger-Themen 1
B Windows Service erstellen Java Basics - Anfänger-Themen 2
B Print Service Java Basics - Anfänger-Themen 5
J XML-Strukturen für REST-Service erstellen Java Basics - Anfänger-Themen 1
O Watch Service erkennt Datei Änderung nicht Java Basics - Anfänger-Themen 0
I AWS Event Notification Service Sample ausführen... Java Basics - Anfänger-Themen 7
G HttpUnit 503 Service Unavailabl Java Basics - Anfänger-Themen 2
C Servlets: doPost() etc. anstatt service() Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben