AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Android Daten empfangen über Wifi von Delphi Windows Projekt
Thema durchsuchen
Ansicht
Themen-Optionen

Android Daten empfangen über Wifi von Delphi Windows Projekt

Ein Thema von Cylence · begonnen am 14. Mai 2012 · letzter Beitrag vom 14. Mai 2012
Antwort Antwort
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#1

Android Daten empfangen über Wifi von Delphi Windows Projekt

  Alt 14. Mai 2012, 09:37
Hi,

ich habe einen Windows Mediaplayer programmiert in Delphi, und habe nun eine Remote App für Android programmiert.
Die Steuerung des Players so geht schonmal ohne Probleme.
Nun möchte ich die ganze Playliste vom Windows Rechner beim Android Handy empfangen, Das geht aber nicht, ich habs einmal am stück, alle pfade der playliste hintereinander mit ; getrennt versucht, aber da hängt sich die app gleich ganz auf, wenn es mehr als 2 Pfade hintereinander sind.
Wenn ich erstmal sende PLAYLISTSTART, dann jedes einzelne empfange und so lange die schleife laufen lass bis PLAYLISTEND kommt, da geht einfach überhaupt nichts, nicht einmal einen bekomme ich so.
Also vom senden her vom Windwos Rechner aus in Delphi is kein Problem denke ich, der Fehler muß beim Empfänger sein, also im Android code, und den hier nutze ich:

Delphi-Quellcode:

        public void StartReceiverX(final String Message) {
                       try{
                           int port = 1778;         
                           Boolean GotMessage = false;
                           //InetAddress serv_address = InetAddress.getByName(newip);
                           DatagramSocket serversocket = new DatagramSocket(port);//, serv_address);
                           serversocket.setReuseAddress(true);
                           serversocket.setBroadcast(true);
                           Looper.prepare();
                           TimeOut = 0;
                           send_btn(Message);  //hier sende ich kurz starte playlist transfer an delphi program
                           while (GotMessage == false) {
                             try{   
                                byte [] buf = new byte[32768]; 
                              DatagramPacket packet= new DatagramPacket(buf, buf.length);
                                packet.setLength(buf.length);   
                                serversocket.receive(packet);                          
                            String ReceivedMessage = new String(packet.getData(), 0, packet.getLength());                              
                       //---------ALLE AM STÜCK----------------------------------------------------------------------------
                            int i = ReceivedMessage.indexOf("MRPLAYLISTEND");
                            if (i > -1) {
                               if (ReceivedMessage.toString().indexOf(";") > -1) {
                                   GotMessage = true;   
                                 MRUtils.ReceivedList.clear();
                                 MRUtils.appendLog("MRPLAYLIST Receiving ");
                                 String[] separated = ReceivedMessage.toString().split(";");
                                 for(int x=0; x < separated.length; x++){   
                                      if (separated[x].indexOf("MRPLAYLISTEND") > -1) { separated[x] = separated[x].replaceAll("MRPLAYLISTEND", ""); }

                                    MRUtils.ReceivedList.add(separated[x]);
                                    MRUtils.appendLog("added "+separated[x]);       
                                 }
                               }
                            }
                          //----------ALLE EINZELN NACHEINANDER---------------------------------------------------------------------------
                            i = ReceivedMessage.indexOf("MRPLAYLISTSTART");
                            if (i > -1) {
                               MRUtils.ReceivedList.clear();
                               ReceivingPlaylist = true;
                               MRUtils.appendLog("MRPLAYLIST START ");                               
                            }
   
                             i = ReceivedMessage.indexOf("MRPLAYLISTEND");
                            if (i > -1) {
                               GotMessage = true;   
                               MRUtils.appendLog("MRPLAYLIST Receiving sucessfully ended");
                               ReceivingPlaylist = false;
                            }
                            
                            if (ReceivingPlaylist) {
                               i = ReceivedMessage.indexOf("MRPLAYLISTEND");
                               if (i == -1) {
                                 i = ReceivedMessage.indexOf("MRPLAYLISTSTART");
                                 if (i == -1) {
                                   MRUtils.appendLog("MRPLAYLIST Receiving "+ ReceivedMessage.toString());
                                   MRUtils.ReceivedList.add(ReceivedMessage.toString()); 
                                 }

                               }    
                            }
                            if (ReceivingPlaylist) {
                              TimeOut = TimeOut +1;
                              if (TimeOut >= 2000) {
                                   GotMessage = true;   
                                 MRUtils.appendLog("MRPLAYLIST Receiving Timed Out");
                                 ReceivingPlaylist = false;
                              }
     
                            }
                          //-------------------------------------------------------------------------------------
                            }
                            catch (Exception e){                                 
                               possibleCover = false;
                            }

                          } //Schleifenende
                          serversocket.close();
                        }
                        catch (Exception e){
                        }
          
        }

jemand ne idee was ich falsch mache?
Tom
Just DO it

Geändert von Cylence (14. Mai 2012 um 10:27 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Android Daten empfangen über Wifi von Delphi Windows Projekt

  Alt 14. Mai 2012, 11:40
Eventuell hilft es den Code der die Datenübertragung durchführt isoliert in einer normalen VM unter der Java IDE auszuführen und dort zu debuggen. Das Einkreisen der Ursache ist dann schneller als bei einer Android Emulation ...
Michael Justin

Geändert von mjustin (14. Mai 2012 um 11:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Android Daten empfangen über Wifi von Delphi Windows Projekt

  Alt 14. Mai 2012, 11:54
Hi, ich verwende das motodev studio, aber da geht wlan in der vm nich...
gibts da einen Trick wie man das zum laufen bringt?

ich kann ja auch schon einzelne kurze Strings vom Windows Rechner empfangen und auch senden, der aktuell laufende Titel zb geht ohne Probleme, nur eben wenns länger/mehr wird, dann gehts nicht.
In den Samples die ich gefunden habe, ist es eben so beschrieben das man den Receiver in einer Schleife laufen lässt, und vom Sender selbst Begin End sendet, und darauf reagiert, aber das geht eben nicht... zumindest so wies ich gemacht hab...
Tom
Just DO it
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz