Hat das K700i jsr-82 Unterstützung?

  • Hallo an alle.


    Ich will mir eine Java Applikation schreiben, die aber auf einem Desktop PC laufen und auf ein K700i via BT zugreifen soll um z.B. SMSe abzurufen, das Telefonbuch auszulesen und mich benachrichtigen wenn neue SMS gekommen sind.


    Im Moment habe ich noch ein Z600 und von Logitech die Mobile Phone Suite die das alles kann. Obwohl das Z600 ja auch kein jsr-82 haben sollte, richtig?


    Weiß einer ob es einfach ist von Java aus das ganze auszulesen bzw. überhaupt möglich? Oder brauch ich dazu das jsr-82 zwingend? Hat das K700i ein jsr-82 API oder wird es das vielleicht noch bekommen (über ein Update)?

  • Hi,


    Antworten auf solche Fragen findest Du am besten auf der SE Developer Page, bzw. in den verschiedenen Phone-Specifications.



    Dort siehst Du dann u.a., dass das K700i folgende Funktionalitäten unterstützt:


    JSR 139 CLDC 1.1
    JSR 118 MIDP 2.0
    JSR 120 Wireless Msg API (vermutlich hast Du das gemeint?)
    JSR 135 Mobile Media API:
    - Audio playback
    - Video playback
    - Camera snapshot


    Ich denke kaum, dass es ein API nach aussen gibt, über das man die SMS auslesen kann. Die Logitech Mobile Phone Suite - wie auch z.B. der FMA und andere solche Tools - lesen die SMS mittels AT-Befehlen aus. Die Referenz dazu findet man ebenfalls auf der Dev-Page, unter "Miscellaneuos" :)


    CHeers,
    Rog.

  • AT Befehle, interessant, davon hab ich schon gehört. Damit hast du mir schonmal ziemlich weiter geholfen!


    das Message API ist nicht das was ich meine. Das jsr-82 ist ein Bluetooth API, da kann man dann j2me Anwendungen schreiben die auf die Bluetooth Schnittstelle des Handys zugreifen können.


    Du weißt nicht zufällig ob ich von Java aus solche Befehle absetzen kann?
    Auf welches Protokoll setzen die AT Befehle auf?
    Gibts darüber ne Docu oder was ähnliches?


    Aber auf jeden Fall schonmal vielen Dank, die Antwort hilft mir sehr!

  • Also - das Sony Ericsson K700i hat keine Java 2 Micro Editon Bluetooth APIs (JSR-82). :(


    Aber die brauchst Du für Dein vorhaben überhaupt nicht. Wobei ich mich frage, welche Platform das werden soll. Gibt es doch bestimmt. Egal


    EWas Du brauchst ist eine Erweiterung für Dein Java (2) Standard Edition auf Deinem Computer und zwar die Java Communications API. Dann erstmal einmal das Dial-up Networking Profil von Deinem Handy auf einen COMM Port legen und dann kannst Du hervorragend AT Kommandos austauschen. Unter anderem auch für SMS. Da ist dann alles drin was Du brauchst.


    Wenn Du allerdings um die Java Commnications API und das Profile Binden herumkommen willst, dann kannst Du es ganz vornehm state-of-the-art via JSR-82 machen. Aber jetzt wird das JSR-82 auf Deinem Rechner loakl installiert. Im Handy braucht es das nicht. Wichtig: irgendwie ist es nötig, dass sich Dein Bluetooth Software Stack (z.B. Logitech oder dessen Adapter) mit der JSR-82 Implementation austauschen. Hier gibt es nicht viel und nur rum Gestückel - also nix für den Alltag. Aber dann könnstest Du wunderbar Bluetooth Geräte suchen, Profil suchen, kopplen und Daten austauschen - und dies theoretisch Platform übergreifend. Die Java Communications API ist nämlich nur für Windows und Solaris.
    :o

  • Gut also bis jetzt versteh ich (fast) nur Bahnhof. Aber man kann sich ja einlesen. Erstmal vielen Dank für deine Antworten, das ist sehr gut erklärt und bringt mich sicher weiter.


    Also das nur für Windows wäre okay, da ich vorhabe dieses Prog auf Windows laufen zu lassen. Also das Communications API hab ich drauf, nur das mit dem "das Dial-up Networking Profil von deinem Handy auf einen COMM Port legen" ist mir noch nicht ganz klar. Muss ich das im Treiber ändern, im Handy, oder in Java?
    Kann ich das Handy dann praktisch als virtuellen COMM Port einrichten und dann ganz normal in Java Befehle über eine serielle Verbindung verschicken?


    *** Edit ***


    hab eben in der Windows Bluetooth Umgebung mal mein Handy untersucht. Da gibt es einen "Dial-Up Network" Eintrag, aber dieser lässt sich nicht verbinden. Er bringt mir immer folgenden Fehler: "Die DFÜ-Netzwerk-Verbindung ist fehlgeschlagen: RFCOMM-Verbindung ist fehlgeschlagen."
    Aber das verbinden als "Serial Port auf Mobile" funktioniert.
    Nun will ich das aber nicht immer selber manuell in Windows einstellen sondern das soll einfach sofort so konfiguriert sein wenn ich mit meinem Handy in die Reichweite meines BT Adapters komm. Eine Idee? Oder ist das automatisch so, sobald ich das einmal eingestellt hab das die Einstellungen beibehalten werden?


    *** Edit End ***


    Das Problem das ich bei der Logitech Mobile Phone Suite festgestellt hab ist, dass mein Handy eine ständige Bluetooth Verbindung zu meinem Rechner hat. Diese lässt sich vom Handy nicht unterbrechen, da dieses mir beim Versuch sagt das BT gerade in Benutzung wäre. Außerdem geht mir so mein Akku sehr schnell leer. Kann es sein das du das mit "Profile Binden" gemeint hast?


    Kann ich das JSR-82 auch für das J2SE verwenden? Habe immer nur Informationen bezüglich des J2ME gefunden und wusste deshalb nicht so recht ob das funktioniert. Und wie meinst du das jetzt genau mit dem Austauschen von Bluetooth Software Stack und der JSR-82 Implemention? So wie du das beschreibst kommt das so rüber als ob da "nur rum Gestückel" raus kommen würde und dies somit nichts brauchbares für meine Anwendung wäre.


    Wäre klasse wenn du mir weiter helfen könntest.

  • Zitat

    Original geschrieben von Wu-mc
    mein Handy eine ständige Bluetooth Verbindung zu meinem Rechner hat. Diese lässt sich vom Handy nicht unterbrechen, da dieses mir beim Versuch sagt das BT gerade in Benutzung wäre. Außerdem geht mir so mein Akku sehr schnell leer.

    Daran kannst Du wenig ändern, selbst wenn Du es selbst programmieren solltest.


    Du willst ja immer notifiziert werden, wenn eine SMS rein kommt. Innerhalb der SMS AT Befehl wird dann ein Ereignis ausgelöst, d.h. es erscheint, wenn alles richtig konfiguriert ist, auf der seriellen Schnittstelle die Nachricht inklusive Absender. Um dieses Ereignis aber zu erhalten, musst Du eine serielle Verbindung zum Mobiletelefon aufgebaut haben. Das geht übrigens auch bei Infrarot oder einer Kabelverbindung.


    Um nun aber eine serielle RS-232 Verbindung über Bluetooth zu haben, musst Du das Serial Port (bzw. besser das Dial-up Networking) Profil nutzen. Um dieses Profil ansteuern zu können, sollte es am besten als serielle RS-232 Schnittstelle innerhalb von Windows vorliegen. Hierzu muss innerhalb des Bluetooth Software Stacks (hier Widcomm) dieses Profil, also dieser Dienst an eine COM Schnittstelle gebunden werden.


    Alles in allem, hast Du dann auch dauerhaft eine Verbindung zwischen Computer und Mobiltelefon - bei Bluetooth geht dann der Akku in die Neige.


    Einfachste Lösung: Datenkabel mit Ladefunktion bzw. Ladestation mit Datenkabel kaufen. DSS irgendwas. Kein zusätzlicher Stromverbrauch und alles geht hervorragend und nebenbei auch noch das Firmware Update. Hier mußt Du dann nur die entsprechende Software nehmen. Ich glaube sogar, dass die Sony Ericsson dies von Haus kann. Ich habe kein Windows.



    Zitat

    Original geschrieben von Wu-mc
    Gut also bis jetzt versteh ich (fast) nur Bahnhof.

    Dann habe ich es aber schlecht erklärt.


    Zitat

    Original geschrieben von Wu-mc
    Kann ich das Handy dann praktisch als virtuellen COMM Port einrichten und dann ganz normal in Java Befehle über eine serielle Verbindung verschicken?.

    Ja, wobei ich nicht genau weiß, was Du mit Java Befehlen meinst. Du kannst über diese API Erweiterung auf die serielle RS-232 Schnittstellen Deines Rechners zugreifen. Das Dial-up Networking Profil ist eine RS-232 Emulation.


    Zitat

    Original geschrieben von Wu-mc
    Kann ich das JSR-82 auch für das J2SE verwenden?

    Ja. Allerdings gibt es "JSR-82" nicht einfach so, sondern es muss zu Deinem Betriebsystem, Java 2 Standard Edition und zu Deinem Bluetooth Software Stack passen. JSR-82 is ja nur das Bindeglied ziwschen einem Bluetooth Software Stack und Java. Meines Wissens gibt es für Widcomm oder die Windows XP Service Pack 2 Bluetooth Software Stacks noch keine JSR-82 Anbindung, d.h. man muß auch komplett den Bluetooth Stack mitbringen: JSR-82 SDKs.


    Das ist natürlich rum Gestückel, weil man kann bei einer Software wie dieser nicht einfach mal beim Benutzer den alten Stack raus und den neuen rein Werfen. Aber so könntest Du Programmiertechnisch die Profile binden und müsstest es nicht manuell machen.

  • Super, nochmals vielen Dank für deine Hilfe, man sieht das du dich gut auskennst. So komme ich meinem Ziel immer näher, jetzt weiß ich zumindest das es geht, nun muss ich nur noch programmieren ;-)


    Na gut, ich klär dich mal ein wenig auf. Ich will mir einen PC ins Auto bauen und mir eine Applikation für nen Touchscreen schreiben, auf dem dann z.B. neu eingegangene SMS stehen. Nun wollt ich eigentlich nicht jedesmal mein Handy aus der Tasche nehmen und es in einen Halter stecken. Andererseits habe ich im Moment eine Bluetooth FSE die ich dann nicht mehr nutzen könnte, da mein Handy ja eine ständige Verbindung zu meinem PC hat, richtig?


    Zitat

    Um nun aber eine serielle RS-232 Verbindung über Bluetooth zu haben, musst Du das Serial Port (bzw. besser das Dial-up Networking) Profil nutzen. Um dieses Profil ansteuern zu können, sollte es am besten als serielle RS-232 Schnittstelle innerhalb von Windows vorliegen. Hierzu muss innerhalb des Bluetooth Software Stacks (hier Widcomm) dieses Profil, also dieser Dienst an eine COM Schnittstelle gebunden werden.

    Also einfach auf mein Handy klicken und es als COM Port einbinden, so das ich von meiner Java App aus z.B. eine Verbindung zu COM5 aufbauen kann. So hab ich das zumindest verstanden. Was ist aber an dem Dial-Up Networking besser als wenn ich mein Handy einfach als COM Port einbinde?


    Zitat

    Ja, wobei ich nicht genau weiß, was Du mit Java Befehlen meinst. Du kannst über diese API Erweiterung auf die serielle RS-232 Schnittstellen Deines Rechners zugreifen. Das Dial-up Networking Profil ist eine RS-232 Emulation.

    Gut das war mir soweit klar. Mit Java Befehle meinte ich einfach das ich von Java aus auf die RS-232 zugreif wie vom Terminal aus und da dann die AT Befehle senden kann. Müsste ja gehen soweit ich das verstanden hab. Nur das mit dem Dial-Up ist mir noch nicht klar, da ich bei mir mein Handy direkt als Serial Port einbinden kann ohne das Dial-up zu benutzen, da dies bei mir eh nicht zu funktionieren scheint.


    Zitat

    Ja. Allerdings gibt es "JSR-82" nicht einfach so, sondern es muss zu Deinem Betriebsystem, Java 2 Standard Edition und zu Deinem Bluetooth Software Stack passen.

    Nur kurze zwischen Frage, zu was gehört der Bluetooth Software Stack bzw. von was ist der Abhängig? Von der eingesetzten Software nehm ich an. Wie finde ich dann raus welches der aufgelisteten SDKs ich benutzen muss?


    Also ich hätte jetzt dieses API und diesen Treiber genommen!?!


    Und was hätte ich dadurch für Vorteile wenn ich es mit der JSR-82 Implementierung mache? Okay, ich kann die Profile binden, aber was bedeutet das genau? Wird das senden der AT Befehle dadurch leichter? Oder brauch ich die dann nicht mehr? Oder kann ich dann einfach das einbinden des Telefons von meiner Applikation aus machen und muss somit das Handy nicht manuell in Windows als COM Port einrichten?


    ---


    Ich weiß, wieder viele Fragen, aber ich bin dir echt dankbar für deine Antworten und würde mich freuen noch mehr von diesen zu erhalten. MFG Wu-mc

  • Zitat

    Original geschrieben von Wu-mc
    Ich will mir einen PC ins Auto bauen und mir eine Applikation für nen Touchscreen schreiben, auf dem dann z.B. neu eingegangene SMS stehen.

    Nokia 610 mit optionalem Hörer: Faraday-Käfig überwunden und damit eine erheblich bessere Sprachqualität! Alles andere lohnt kaum.


    Zitat

    Original geschrieben von Wu-mc
    Andererseits habe ich im Moment eine Bluetooth FSE die ich dann nicht mehr nutzen könnte, da mein Handy ja eine ständige Verbindung zu meinem PC hat, richtig?

    Wahrscheinlich. Zwar kann Bluetooth bis zu acht Geräte untereinander verbinden (theoretisch undendlich viele), aber in diesem Fall wäre Dein Sony Ericsson K700i Master zu Deiner Bluetooth Freisprechanlage, aber wiederrum Slave zu Deinem Computer. Es enstünden also zwei Bluetooth Piconetze, die der Bluetooth Chip vom K700i höchst wahrscheinlich nicht verwalten kann.


    Zitat

    Original geschrieben von Wu-mc
    Nur das mit dem Dial-Up ist mir noch nicht klar, da ich bei mir mein Handy direkt als Serial Port einbinden kann ohne das Dial-up zu benutzen, da dies bei mir eh nicht zu funktionieren scheint.

    Es ist beinahe egal ob Du das Serial Port Profil (SPP) oder das Dial-up Networking (DUN) nimmst. Musste selber gerade nochmal nachschauen. DUN schreibt vor, dass es AT Kommandos gibt. Im SPP müssen keine angeboten werden. Bei Sony Ericsson ist das aber meines Wissens egal.


    Zitat

    Original geschrieben von Wu-mc
    ich hätte jetzt dieses API und diesen Treiber genommen.

    Zum Beispiel. Wichtig ist allein, dass der Bluetooth Stack Deine Bluetooth Hardware unterstützt. USB, PC Card (BCSP, 5-Wire UART, 3-Wire UART), etc.


    Zitat

    Original geschrieben von Wu-mc
    Und was hätte ich dadurch für Vorteile wenn ich es mit der JSR-82 Implementierung mache? Okay, ich kann die Profile binden, aber was bedeutet das genau? Wird das senden der AT Befehle dadurch leichter? Oder brauch ich die dann nicht mehr? Oder kann ich dann einfach das einbinden des Telefons von meiner Applikation aus machen und muss somit das Handy nicht manuell in Windows als COM Port einrichten?

    AT Kommandos sind weiterhin nötig, aber der Rest stimmt genau. Das Binden entfällt und Deine Applikation wird portabler - könnte bei geschickter Programmierung im Kern dann auch auf einem Mobiltelefon, PDA etc laufen, wenn dieses Gerät JSR-82 mitbringt.

  • Du brauchst nicht notwendigerweise jsr-82. Du kannst du einfach auf deinem Rechner einen Webserver laufen lassen und den mittels einer HTTPConnection belästigen. Das geht auf fast allen Handies.
    Das geht deshalb, weil der mrouter, wenn er mit dem Handy verbunden ist, egal auf welche art und weise, alle IP-Pakete über den Rechner weiterroutet.
    Hier der Source einer alten anwendung von mir zum fernsteuern des PC über das P800 in Java geschrieben:
    http://kbcvs.net/viewcvs/cgi/v…pcrc/src/?cvsroot=Karsten


    Karsten

  • Zitat

    Original geschrieben von Abi99
    Nokia 610 mit optionalem Hörer: Faraday-Käfig überwunden und damit eine erheblich bessere Sprachqualität! Alles andere lohnt kaum.

    Also das hab ich jetzt mal garnicht verstanden was das mit allem anderen zu tun hat *g*


    Zitat

    Original geschrieben von Abi99
    Wahrscheinlich. Zwar kann Bluetooth bis zu acht Geräte untereinander verbinden (theoretisch undendlich viele), aber in diesem Fall wäre Dein Sony Ericsson K700i Master zu Deiner Bluetooth Freisprechanlage, aber wiederrum Slave zu Deinem Computer. Es enstünden also zwei Bluetooth Piconetze, die der Bluetooth Chip vom K700i höchst wahrscheinlich nicht verwalten kann.

    Meinst du es wäre möglich die Bluetooth FSE am PC anzumelden, also auch vom Java Prog aus verwaltet und das ganze dann über das Voice Gateway laufen zu lassen? Oder ist das für was anderes da? Meinst das wäre dann so einfach, oder nur mit großem Aufwand möglich?


    Aber ansonsten schonmal vielen Dank für die ganzen Antworten, hätte nicht gedacht das ich das ganze so schnell hinbekomme, dachte das wäre komplizierter. Naja, aber auch nur dank deiner Hilfe. Nun okay, im moment mach ich noch alles übers Terminal, aber die Umsetzung auf ein Java App dürfte nicht das Problem sein. Nur das ich die SMS noch als PDU bekomm ist etwas lästig, schreib mir aber da ne Klasse die mir das dann immer in Text umwandelt. Ist ja auf Nobbi.com recht schön erklärt. Bin mal gespannt ob ich das allein hin bekomm.


    @ yuppi


    Also irgendwie hab ich das Gefühl das die Methode von Abi99 einfacher zu handeln ist. Und wenn ich mit jsr-82 net klar komm dann geht das ja auch indem ich das Bluetooth Zeug von Windows verwalten lasse. Außerdem ist das eh noch nicht ganz sicher ob das alles über BT laufen soll. Trotzdem danke für deine Mühen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!