Unterschiede von Android zu Java ME / J2ME
Die Entwicklung von Java ME und Android unterscheidet sich grundlegend, da die von der API angebotenen Klassen und Funktionen Großteils speziell für Android entwickelt wurden.
Die Entwicklung von Java ME und Android unterscheidet sich grundlegend, da die von der API angebotenen Klassen und Funktionen Großteils speziell für Android entwickelt wurden.
Die Methode recordAudioUntilEternity() arbeitet wie recordAudio(), jedoch nimmt sie solange auf, wie das Flag recording der Klasse CoreMidlet auf true gesetzt ist. Das Flag wird beim Drücken der Taste für d (more…)
Wenn die Profil- bzw. Kennwortprüfung eine Ãœbereinstimmung ergibt, wird eine Textnachricht mit dem Inhalt „ok“, falls keine Ãœbereinstimmung besteht wird der String „deny“ zurück an den Kommunikationspartner geschickt. (more…)
Falls das Endgerät die MMAPI nur unvollständig Implementiert (siehe Kapitel 3.4.1), oder eine Exception im Verlauf des Erzeugens des Video-Items ( z. B. wegen zu geringem Speicher ) geworfen wird, wird versucht die Form F_Filebrowser anzuzeigen, welche die Auswahl eines Bildes aus dem Filesystem ermöglicht. Somit hat der Benutzer die Möglichkeit, ein bestehendes Foto von der Speicherkarte oder dem internen Speicher des Telefons zu laden. Falls die FileConnection API auf dem Endgerät nicht implementiert ist, gibt (more…)
Die Form zur Eingabe des persönlichen- und des partner – Kennworts, F_Kennwort – beinhaltet lediglich zwei TextField´s. Die Form´s für die Einstellung des persönlichen Profils bzw. des Partner-Profils sind einander sehr ähnlich, sie bestehen aus ChoiceGroup´s für die Auswahl der persönlichen- und optischen Merkmale sowie der Interessen – und der jeweilig gewünschten Ãœbereinstimmung beim potentiellen Partner. Für die Einstellung der Grundangaben wie Geschlecht, Alter und Größe dient die Form F_meineDaten_Grundlagen, (more…)
Steuerungsschicht / Controller:
Die Methoden zur Steuerung der Programmlogik finden sich im Package n3po.core in der Klasse CoreMidlet, welche die Interfaces für die Behandlung von Bluetooth – und SMS-Events, implementiert. Ãœber die in den Interfaces definierten Callback- Methoden wird auf eingehende Nachrichten und Ereignisse über die Bluetooth- oder Wireless-Messaging-Schnitstelle reagiert und die entsprechenden (more…)
Die folgende Grafik gibt einen groben Überblick über die Funktionsweise der Applikation:
Falls man sich durch den Kommunikationspartner gestört fühlt, kann man die Bluetooth-MAC-Adresse des anderen Geräts in einer Blacklist permanent speichern, Geräte deren MAC auf der Blacklist stehen, werden als Kommunikationspartner in Zukunft generell abgelehnt. (more…)
Die Hardwareanforderungen der CLDC 1.0
Neben der Sicherheitsprüfung wurde die CLDC auch in punkto API-Umfang stark abgespeckt. Zum einen hat sich die Zahl der Klassen im Vergleich zur Java Standard (more…)
Ab Version 1.1 ist dieser Mangel behoben, da moderne Handys mittlerweile meist eine FPU (Floatingpoint Processing Unit) besitzen. Für Programmierer, die Gleitkommazahlen unter CLDC 1.0 verwenden wollen, existiert ein frei erhältliches Package namens MathFP, welches die Gleitkomma-Arithmetik auf Integer-Zahlen abbildet. (more…)
Einige Klassen und Interfaces der CLDC sind in J2SE nicht enthalten und benutzen deshalb den Namensraum javax.microedition.* (z. B. .io, .lcdui, .media, .midlet, .pki, .rms).
Daneben existiert mit der Connected Device Configuration ( CDC ) eine Variante für Nicht-PC-Geräte, welche eine vollständige JVM unterstützen können beispielsweise Settop-Boxen für Digital-TV oder einfache Netzcomputer. (more…)
Zum einen hat sich die Zahl der Klassen im Vergleich zur Java Standard Edition reduziert. Von den bekannten Paketen sind nur java.lang, java.io und java.util übrig geblieben – zum anderen (more…)
Die KVM prüft lediglich ob die Klassen vorschriftsgemäß verifiziert wurden, die rechenaufwändige Ãœberprüfung des Bytecodes wird somit eingespart. (more…)
Java 2 Platform, Micro Edition, abgekürzt J2ME, ist eine Umsetzung der Programmiersprache Java für mobile Endgeräte wie etwa Mobiltelefone oder Personal Digital Assistants ( PDA ).Auf der weltweit größten Java-Entwicklerkonferenz, der (more…)
Um die Einschränkungen, der die J2ME unterlegen ist, zu verdeutlichen:
Während J2SE in der Version 1.4 aus 2723 Klassen in 135 Packages besteht, kommen (more…)
Das Fazit dieser Diplomarbeit ist zweigeteilt. Auf der einen Seite bietet die Java 2 Micro Edition den Entwicklern beeindruckende Möglichkeiten um Ihre Ideen auf mobilen Endgeräten umzusetzen. Für erfahrene Java-Entwickler bereitet der Umstieg auf die Micro Edition kaum Probleme, auch wenn einige Einschränkungen zu beachten sind und auf viele Funktionen der Standard Edition verzichtet werden muss. (more…)
Beim S 65 fiel schon sehr bald die geringe Ãœbertragungsgeschwindigkeit via Bluetooth auf, während das Nokia 6230 bei der Ãœbertragung von Dateien vom Mobiltelefon auf den Desktop-Rechner knapp 70 KB pro Sekunde erreicht, sind es beim Siemens S 65 nur 7 KB pro Sekunde. Auf Nachfrage erklärte ein Mitarbeiter der technischen Hotline von Siemens, (more…)
3.4.2.2 Siemens S65
Das etwa ein halbes Jahr jüngere Siemens S65 implementiert die wesentlichen Teile der MMAPI, die zur sinnvollen Nutzung der Applikation nötig sind, wenn auch mit Einschränkungen. Es ist möglich Fotos über die interne Kamera aufzunehmen, diese lassen sich jedoch nur im JPEG – Format aufzeichnen und nicht, wie von SUN vorgesehen, im PNG – Format. Hier sind Inkompatibilitäten mit den Geräten anderer Hersteller zu befürchten. (more…)
3.4.2.1 Nokia 6230
Das Nokia 6230 zeigt den schwerwiegendsten Bug relativ schnell. Wenn man versucht ein Foto der eigenen Person zu machen stürzt das Programm sofort mit einer ClassCastException ab. (more…)
Beim Testen der Applikation zeigten sich einige Abweichungen vom Standard, fehlende Features oder Bugs in der Firmware der Endgeräte, welche in diesem Kapitel beschrieben werden. Sofern möglich werden Workarounds oder Alternativen beschrieben, um den Einsatz der Applikation auf dem Endgerät zu ermöglichen. (more…)
3.4.1.2 Kurzvorstellung des Siemens S65
Das im dritten Quartal 2004 erschienene Siemens S65 ist mit 109 x 48 x 18 mm nur minimal größer als das Nokia 6230 und wiegt mit 98 Gramm etwa gleich viel. Das Display stellt ebenfalls 16 bit Farbtiefe dar und bietet mit 132 x 176 Pixel eine etwas höhere Auflösung, jedoch ist das Display von den Abmessungen her wesentlich größer. Die interne 1,3 Megapixel-Kamera hat eine maximale Auflösung von 1280 x 960 Pixel, jedoch leidet die Bildqualität an der geringen Objektivgröße, ist aber dennoch brauchbar. (more…)
3.4.1.1 Kurzvorstellung des Nokia 6230
Das Nokia 6230 erschien Ende 2003 und ist mit den Abmessungen 103 x 44 x 20 mm und einem Gewicht von 97 Gramm sehr handlich. Das 16bit Display (65536 Farben) besitzt eine physikalische Auflösung von 128 x 128 Pixel. Es bietet 3,5 MB Speicherplatz wobei 512 KB als Heap nutzbar ist. Durch eine Multimedia Card ( MMC ), welche hinter dem Akku (more…)
Der Versand und Empfang von SMS Kurznachrichten zur Aboverlängerung arbeitet nach dem gleichen Prinzip wie die Kommunikation über Bluetooth.
Die Klasse SMSListener definiert die handleSMSAction() – Methode, welche von der Klasse CoreMidlet implementiert wird. Im Interface werden die Events definiert, auf die reagiert wird, dies sind EVENT_RECEIVED, EVENT_SENT und EVENT_ERROR. (more…)
Wiederaufbau der Verbindung
Falls die Verbindung während der Kommunikation unterbrochen wird, z. B. weil sich beide Kommunikationspartner zu weit voneinander entfernt haben, wird versucht die Verbindung erneut aufzubauen. Die Methode tryRecon() des (more…)
Empfang von Nachrichten
Die Klasse BTReceiver implementiert ebenfalls das Interface Runnable und stellt in der run() – Methode die Funktionalität zum Empfang und die den SIGNAL – Typen entsprechende Behandlung von Nachrichten zur Verfügung. (more…)
Versand von Nachrichten
BTSender implementiert das Interface Runnable und stellt in der run() – Methode die Funktionalität des Threads zur Verarbeitung von eingehenden Nachrichten zur Verfügung. Nach dem Start des Threads wird zuerst versucht, ein DataOutputStream – Objekt zu erzeugen. In diesen DataOutputStream werden die Daten, welche verschickt werden sollen, geschrieben. Das Objekt wird durch die Methode openDataOutPutStream() des StreamConnection – Objekts, welches dem Endpoint zugeordnet wurde, zurückgegeben. (more…)
Kommunikation zwischen den Endgeräten
Die Kommunikation mit dem anderen Gerät erfolgt über die Klasse EndPoint, sie repräsentiert die Verbindung zu einem anderen Gerät und verwaltet unter anderem die RemoteDevice, das Connection-Objekt, sowie das Callback-Objekt für die (more…)
Erzeugen eines lokalen Servers
Die Methode init() erwartet den Nicknamen sowie das Objekt, welches das BTListener-Interface implementiert, als Ãœbergabeparameter. Beim Initialisieren wird die Blacklist aus dem Recordstore geladen, die Methode setzt die (more…)
3.3.2.5 Konfigurationsdaten:
Die Konfigurationsdaten für Programmeinstellungen, persönliches Profil und partner Profil werden von den Klassen SysConf, MyProfile und PartnerProfile aus dem Package n3po.conf verwaltet. (more…)
3.3.2.4 Debugging
Debugmeldungen aller Klassen nimmt die Methode gui_log() der Klasse CoreMidlet entgegen, sie erwartet zwei Strings als Ãœbergabeparameter, der erste bezeichnet die Klasse, von der die Debugmeldung stammt, der zweite enthält den Meldungstext. Falls das Flag isDebug true ist, wird die Meldung in ein DataPacket umgewandelt und der Klasse (more…)
3.3.2.3 Verarbeitung von Multimediadaten:
Für die Verarbeitung und Aufnahme von Multimediadaten ist die Klasse MMUtil zuständig. Für die Wiedergabe von Audiodaten dienen die Methoden playMidi(), playTone(), playVoice(), für die Aufnahme recordAudio() und recordAudioUntilEternity(). (more…)