Announcement

Collapse
No announcement yet.

Service ferngesteuert starten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Service ferngesteuert starten

    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.

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

  • #2
    Ein Service zu haben, der getrennt von einer App läuft bzw schläft, ist schon mal gut.
    Was Du vielleicht suchst, wäre Pushnotification.
    Denn das was so viel Strom verbraucht, klingt nach einem Service der ständig pulled.
    Gruß, defo

    Comment


    • #3
      Du brauchst eine App auf dem Handy, welches starten & stoppen soll
      Du brauchst einen Server irgendwo
      Du brauchst eine App auf dem Handy mit der Rechenaufgabe.

      Beide Handy melden sich am Server an. Der Server übernimmt die Kommuikation zwischen beiden. Er nimmt den Start/Stop entgegen und leitet ihn weiter.
      Ein App auf dem Handy sendet die andere empfängt.

      Dazu stehen die Javaklassen Socket zur Verfügung

      https://javabeginners.de/Netzwerk/Socketverbindung.php



      Christian

      Comment


      • #4
        Vielen Dank für die Antworten. Ich habe mir beide Funktionen mal angeschaut. Mit dem Socket sollte es klappen, muss nur noch mehr in die Matiere einsteigen Christian Marquardt .
        Bei Push Notification wiederum, sollte man diesen zweckentfremden können, brauche ich keine Server App zu progranmieren oder? defo

        Mit zweckentfremden meine ich, statt eine Benachrichtigung zu schicken, den Client die Aufgabe erledigen zu lassen über den Start Button, (zwei Buttons, Start und Stop) den Service der Host App aufzurufen. Und dementsprechend wieder stoppen lassen.

        Comment


        • #5
          Du würdest die Push Notifikation Funktionen von Google oder Apple nutzen (jeweils je Plattform für die die App angeboten werden soll)
          Gruß, defo

          Comment


          • #6
            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?

            Comment


            • #7
              https://stackoverflow.com/questions/...ternal-storage

              https://stackoverflow.com/questions/...d-in-android-q
              Christian

              Comment


              • #8
                Christian Marquardt Die Dateien werden ja gespeichert, wie vorgestellt. Das funktioniert super.
                Worauf ich aber nicht komme, ist, einen direkten Upload der Dateien auf den Firebase Storage mit meinem Code.

                Comment


                • #9
                  Firebase ist doch eine Cloud. Da kannst du doch nicht mit Environment.getExternalStoragePublicDirectory(Envi ronment.DIRECTORY_DOWNLOADS) darauf zugreifen.

                  Hier ist die Anleitung

                  https://firebase.google.com/docs/storage
                  Christian

                  Comment


                  • #10
                    Christian Marquardt Da habe ich mich wohl falsch ausgedrückt. Mit dem Code, den ich gepostet habe, schreibe ich ganz normal auf den Speicher des Smartphones. Das Problem liegt darin, diesen Code so umzuschreiben, dass dieser für die Cloud kompatibel ist. Gesucht und gelesen habe ich schon viel aber eine geeignete Lösung für mein Problem hab ich nicht gefunden.

                    Comment


                    • #11
                      Wenn du in der o.a. Anleitung auf Android und dann getStartet klickst wird beschrieben, wie man das macht
                      Hier der Upload
                      https://firebase.google.com/docs/sto...d/upload-files

                      Natürlich sollten die vorhergehenden Voraussetzungen erfüllt sein
                      Christian

                      Comment


                      • #12
                        Das mit dem Uplad hat jetzt gut geklappt, danke Christian Marquardt
                        Leider birgt ein Fortschritt immer ein weiteres Problem.
                        Meine App hat eine Main Activity und zwei Service's, eine, die die Message empfängt und eine die ausgeführt werden soll, wenn der FirebaseMessagingService diese Message empfängt..

                        Die Nachrichten kommen an, wenn die App geschlossen ist und der Service wird auch gestartet,.Allerdings nur dann, wenn die App geöffnet lst im Vordergrund.
                        Im Background passiert, (ausgenommen die ankommende Nachricht), leider nichts.

                        Soll das so sein oder kann man da noch etwas optimieren?

                        Comment


                        • #13
                          Also ich weiß nicht, wie genau man Deine Formulierung nehmen muss/kann, aber es klingt also ob die App alles regelt (und sogar den Service startet?)
                          Die Notification Geschichten sollten ja wohl andersrum über den Service laufen und die App sollte sich -wenn mal gestartet- aus dem Service (und der Cloud) bedienen.

                          Ich hab das praktisch noch nicht gemacht. Nur grundsätzliches:
                          Die ganze Geschichte ist Ressourcen intensiv, deswegen gibt es bei Android und Apple verschieden regide Maßnahmen, soetwas einzubremsen. Die muss man ansprechen / berücksichtigen. Ich glaube das wird bei Android über unterschiedlich dramatische Service Klassen gemacht. Beispiel Navigation mit google maps: Die hat die "härtesten" Anforderungen an das Messaging und läuft mit höchster Prio.
                          Weitere Stichworte dazu, Energie sparen (das Gegenteil von online sein) und das nächste fällt mir grad nicht ein.

                          Bei Apple ist es angeblich noch "schlimmer". Die erlauben nicht einfach so, dass eine App sich zu sehr in den Vordergrund drängelt und den Akku lehr saugt.
                          Gruß, defo

                          Comment

                          Working...
                          X