English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
J2ME ontwikkeling van software voor mobiele telefoons
(2002)
Colin Fahey
moto_t720_open_lightanddark02.jpg
Motorola T720 mobiele telefoon, afgebeeld geopend

1. Waarschuwing

Dit document is verouderd!  De informatie in dit document kunnen zijn geldig en nuttig in het jaar 2002, maar veel dingen zijn veranderd in de daaropvolgende jaren!  Dit document moet nu alleen worden beschouwd als een interessante historische record van het jaar 2002.  Reken er niet op enige informatie of advies in dit document.  Alle technische informatie in dit document is erg verouderd. 

Het downloaden zelf-gemaakte software, zelf gecreëerde beelden en self-created telefoon alert melodieën (dat wil „zeggen,“ beltonen), was relatief zeldzaam en moeilijk in het jaar 2002.  Helaas, zes jaar later, enkele aanbieders van mobiele telefoon (met inbegrip van Apple, die de exclusieve software en „beltoon“ portaal voor de iPhone) nog steeds beperkingen opleggen met betrekking tot het downloaden van software, afbeeldingen en muziek, omdat mobiele telefoon dienstverleners genoten zeer grote financiële winsten door het beheersen van deze soorten downloads. 

Gelukkig, cellulaire telefoons, zoals die met de „Android“ software platform, zal eeuwig einde het vermogen van de ondernemingen te creëren en te benutten gesloten markten voor dergelijke vormen van gebruik van cellulaire telefoons.  Hoewel de consument willens gekochte mobiele telefoon service van plannen die onder zeer hoge kosten voor het downloaden van software, afbeeldingen en muziek, dit is vanwege het beperkte aantal mobiele telefoon service-opties beschikbaar. 

De economische dynamiek die het mogelijk hebben gemaakt, bepaalde bedrijven uit te groeien tot een machtspositie op de markt mag niet worden uitgelegd als een impliciete goedkeuring door de sterke consumenten.  Zoals bedrijven beginnen te domineren, en dan maakt het moeilijk of onmogelijk voor concurrenten om de markt te betreden, de dominante bedrijven kunnen producten aanbieden die een combinatie van hoge positieve waarde (bijvoorbeeld de mogelijkheid om te communiceren, van waar dan ook) met een hoge negatieve waarde (bijvoorbeeld hoge prijzen wenselijk voor software, afbeeldingen en muziek, die allemaal anders zou zijn vrij beschikbaar, dus de service voegt negatieve waarde).  Geen consument wordt gedwongen tot aankoop van een mobiele telefoon, maar er is geen twijfel over bestaan dat de dominante gsm dienstverleners hebben geleidelijk voorwaarden geschapen die niet kunnen worden beschouwd als een „vrije markt.“  Daarom wordt de mobiele telefoon service markt is „economisch“ inefficiënt en is een onnodige last voor de consument. 

Hopelijk, eisen dat de mobiele telefoon dienst radiofrequenties beschikbaar zijn om concurrerende diensten op het herstel van de normale marktwaarde aan de overdracht van gegevens, zodat mobiele telefoon dienstverleners zijn weer teruggebracht tot louter dragers van gegevens (bijvoorbeeld alleen het verstrekken van bandbreedte) in plaats van informatie of entertainment aanbieders ! 

De activiteiten van het transport van data moet worden gescheiden van de werkzaamheden van de verkoop van gegevens, anders zal er een stimulans voor de business data transport te blokkeren concurrenten uit de verkoop van gegevens via dezelfde data transport kanaal. 

De video game console markt kampt met hetzelfde probleem.  De fabrikanten van video game console hardware zijn bezig met het oprichten van apparaten die kunnen worden weergegeven, video games, maar die dezelfde bedrijven die ook de exclusieve controle van de overdracht van software aan die video game consoles.  Daarom is er een stimulans voor de video game console fabrikanten te blokkeren concurrenten uit de verkoop van software voor de video game consoles.  Als een video game console hardware fabrikant gericht op het ontwerpen en produceren van hardware die konden worden verkocht tegen een winst (in plaats van op een aanzienlijk verlies, net als met de X-Box en PlayStation en Nintendo video game consoles), dan wordt de video game markt zou gedijen, en de kwaliteit van de beste videogames zou drastisch verbeteren en de kosten van videospelletjes zou instorten. 

2. Topic index

(1)
J2ME ontwikkeltools
(2)
Simple J2ME programma
(3)
Complexe programma J2ME
(4)
Sun „draadloze toolkit“
(5)
Het aanbieden van software op een internet site
(6)
Het downloaden van software vanaf een internetsite
(7)
Download foutmeldingen en de installatie foutberichten
(8)
Het maken, aanbieden, en het downloaden van „beltonen“
(9)
Het maken, aanbieden, en het downloaden van afbeeldingen
(10)
AT&T mobiele telefoon configuratie-instellingen (voor het netwerk)
(11)
Links naar andere mobiele telefoon middelen
(12)
J2ME versus BREW

3. J2ME ontwikkeltools

Deze paragraaf beschrijft hoe ontwikkel-tools te downloaden die gebruikt kunnen worden om te compileren J2ME broncode in te class-bestanden die geschikt zijn voor mobiele apparaten.  Merk op dat de Sun „J2ME Wireless Toolkit,“ dat besproken werd in een later deel van dit artikel, vereist het downloaden van de Java SDK beschreven in deze sectie. 

3.1 JDK 1.4 (of later)

Dit betekent dat u het nodig hebt conventionele Java 2 SDK uit Sun.  Ik gedownload en gebruikt versie 1.4 via de volgende link:
http://java.sun.com/j2se/1.4/download.html
Hier is wat de download pagina er uit ziet:
java2sdk_download_page.jpg
Start de installatie-programma.  Installeren om de standaard locatie ( c:\j2sdk1.4.0_03 ) tenzij u in staat bent pad op te lossen problemen die zich kunnen voordoen. 

3.2 Connected Limited Device Configuration (CLDC)

Ik zal niet pretenderen te weten wat dit is, maar ik gewoon gedownload vanaf de Sun website.
http://wwws.sun.com/software/communitysource/j2me/cldc/download.html
Hier is wat de belangrijkste CLDC downloaden webpagina ziet er zo uit:
cldc_download_page.jpg
Alleen 1.0.3 beschikbaar was op het moment dat ik heb bezocht.
Om te downloaden van deze, ik nodig had om zich bij Sun website.  Ik heb het volgende profiel:
Username:        anon***anon
Password:        nospamplease
Favorite color:  blue
Full name:       Prof. Anon Nospamplease
Ik downloadde het volgende bestand:
j2me_cldc-1_0_3-fcs-src-b17-winunix-14_sep_2001.zip
Ik uitgepakt naar de volgende map:
C:\j2me
Ik omgedoopt tot de „cldc-1_0_3-fcs“ directory naar eenvoudigweg:
cldc (dwz het volledige pad is c:\j2me\cldc)

3.3 Mobile Information Device Profile (MIDP)

Ik zal niet pretenderen te weten wat dit is, maar ik gewoon gedownload vanaf de Sun website.
http://java.sun.com/products/midp/
Hier is wat de belangrijkste MIDP downloaden webpagina ziet er zo uit:
midp_download_page.jpg
Ik downloadde het volgende bestand:
j2me_midp-1_0_3-fcs-src-b26-win-19_sep_2001.zip
Ik uitgepakt naar de volgende map:
C:\j2me
Ik omgedoopt tot de „midp-1_0_3-fcs“ directory naar eenvoudigweg:
midp (dwz het volledige pad is c:\j2me\midp)

3.4 Het instellen van gereedschappen

3.4.1 Opzet van paden

Voeg de volgende regels toe aan je AUTOEXEC.BAT bestand:
REM ---- Java Support ----
SET MIDP_HOME=C:\j2me\midp
SET PATH=%PATH%;c:\j2sdk1.4.0_03\BIN;
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\j2sdk1.4.0_03\BIN;C:\j2me\midp\bin;%PATH%
Dan werking van deze variabelen te herladen door het uitvoeren van het batchbestand:
cmd_prompt_autoexec_bat.jpg
c:\>  autoexec.bat
U kunt ook zelf dezelfde variabelen met behulp van de Windows-omgeving variabele bedieningspaneel.

Merk op dat heb ik ervoor gekozen te specificeren expliciete directory paden naar mijn huidige versie van de Java 2 SDK.  Daarom, als ik upgrade, dan moet ik AUTOEXEC.BAT bewerken van het bestand naar de nieuwe mappen. 

3.4.2 Controleer de Jave 2 SDK binaries

Zodra de bovenstaande instellingen van kracht worden, moet je in staat om de Java hulpprogramma's uit de opdrachtprompt zonder vermelding van de volledige pad naar het hulpprogramma's. 

Het volgende commando start de mobiele telefoon apparaat emulator: 
cmd_prompt_midp.jpg
c:\>  midp
Het volgende plaatje laat de mobiele telefoon apparaat emulator: 
java_midp_launch.jpg

4. Simple J2ME programma

4.1 Schrijf Java code

Met behulp van een tekst-editor, een persoon kunt typen in code, zoals voor dit HelloMIDlet.java broncode bestand:
file_image_hellomidlet_java.jpg
Hier is de code in plain text-formaat:
// File: HelloMIDlet.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class  HelloMIDlet
extends       MIDlet
implements    CommandListener
{
    private Command exitCommand;
    private Display display;
    private TextBox t = null;

    public HelloMIDlet()
    {
        display = Display.getDisplay( this );
        exitCommand = new Command( "Exit", Command.EXIT, 2 );
        t = new TextBox
        (
            "Hello MIDlet",
            "Test string",
            256, 0
        );
        t.addCommand( exitCommand );
        t.setCommandListener( this );
    }

    public void startApp()
    {
        display.setCurrent( t );
    }

    public void pauseApp()
    {
    }

    public void destroyApp( boolean unconditional )
    {
    }

    public void commandAction( Command c, Displayable s )
    {
        if (c == exitCommand)
        {
            destroyApp( false );
            notifyDestroyed();
        }
    }
}

4.2 Compileer *.java code aan *.class

cd  c:\HelloMIDlet
Let op: De volgende opdracht moet op een lijn, maar is uitgebreid naar meerdere regels tekst alleen voor de duidelijkheid.
(Huidige map: C:\HelloMIDlet)
javac
    -target 1.1
    -d .\
    -bootclasspath c:\j2me\midp\classes
    HelloMIDlet.java
cmd_prompt_javac.jpg
Opmerking: De „-target 1.1“ is noodzakelijk om te vermijden dat een fout in de toekomst „preverify“ stadium.  Blijkbaar dit iets te maken heeft met een probleem met MIDP 1.0.3 ondersteuning in JDK 1.4. 

4.3 Preverify voor het genereren van een nieuw bestand *.class

cmd_prompt_preverify.jpg
(Huidige map: C:\HelloMIDlet)
preverify  -classpath  c:\j2me\midp\classes;.  HelloMIDlet
Dit genereert een nieuwe *.class bestand in een nieuwe submap genaamd „output“ (standaard).

4.4 Test de nieuwe *.class bestand

cmd_prompt_midp_midlet.jpg
(Huidige map: C:\HelloMIDlet)
midp  -classpath  c:\j2me\midp\classes;.\output  HelloMIDlet
Dit begint de telefoon emulator, wat aangeeft dat de nieuwe „output“ directory bevat een deel van de noodzakelijke *.class bestanden.
De onderstaande afbeelding toont het verwachte resultaat.
java_midp_hellomidlet.jpg

4.5 Maak een nieuw tekstbestand, „manifest.mf“, en bewerk het bestand

Een „manifest.mf“ bestand is van essentieel belang om het verkrijgen van een werkelijke mobiele telefoon bij de interpretatie van de inhoud van een *.jar bestand.  Als een goede „manifest.mf“ bestand is niet opgenomen in het *.jar bestand, dan wordt de mobiele telefoon kunnen downloaden met succes de *.jar bestand, maar wellicht niet zullen interpreteren het gedownloade bestand, eventueel in de rapportage een fout zoals „Unsupported Content Type“. 
Het volgende is een voorbeeld van een eenvoudige „manifest.mf“ bestand.
file_image_manifest_mf.jpg
Hier is de „manifest.mf“ bestand als platte tekst: 
MIDlet-1: My_Description,, HelloMIDlet
MIDlet-Name: My_Midlet_Suite
MIDlet-Vendor: Colin Fahey, Inc.
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
Merk op dat de CLDC en MIDP versies worden in dit dossier.  Wees zeer voorzichtig en conservatief bij het bewerken van de verschillende velden in dit dossier.  Als je „File Corrupt“ fouten, en probeer vervolgens de opheffing van alle gebieden die niet in dit voorbeeld.  Ook zetten de velden in de volgorde waarin ze worden weergegeven in het voorbeeld.  Ook inkorten elk veld waarde zoveel als je kunt, en houden de personages beperkt tot eenvoudige letters, cijfers, punten, en streepjes.  Sommige gsm-diensten en mobiele telefoons, kan tolereren meer variatie van het veld bestellen en inhoud van velden. 
Let op: 

Wanneer de „jar“ programma wordt gebruikt voor het maken van een *.jar bestand en de „manifest.mf“ bestand is opgegeven als het manifest bestand, de „jar“ programma leest het manifest bestand en zou dit kunnen leiden tot meer velden want het schept een bestand met de naam „MANIFEST.MF“ binnen de *.jar output bestand.  Daarom, als de „MANIFEST.MF“ bestand wordt gewonnen uit een *.jar bestand en wordt vervolgens vergeleken met het oorspronkelijke bestand „manifest.mf“ opgegeven tijdens het aanmaken van de *.jar, de twee bestanden anders kan zijn, met de „MANIFEST.MF“ bestand met meerdere velden meer dan het oorspronkelijke bestand „manifest.mf“ . 

Niet extract „MANIFEST.MF“ een bestand uit een *.jar bestand en poging tot een nieuwe *.jar bestand aan de hand van dat manifest bestand.  Als u een uittreksel „MANIFEST.MF“ bestand uit een *.jar bestand heeft, dan moet u op om alle velden behalve voor diegenen in het voorbeeld hierboven getoond „manifest.mf“ bestand. 
Opmerking:

Pictogrammen voor programma's blijkbaar niet op de Motorola T720 telefoon.  Dit is de reden waarom ik niet beschrijven mijn MIDlet met een pictogram.  Echter, de volgende laat zien hoe u een pictogram van het programma binnen het manifest bestand: 

MIDlet-1: My_Description, /icon.png, HelloMIDlet 

Bij het ontwikkelen voor mobiele telefoons dat doen voor toepassingen weer te geven, geeft het pictogram bestandsnaam, en voeg het pictogram image bestand zelf aan de *.jar bestand onder vermelding van de naam van het bestand tussen de bestandsnamen van bestanden worden toegevoegd aan de *.jar bestand. 

4.6 Doe de „manifest.mf“ bestand en *.class bestand naar een bestand *.jar

De volgende commando maakt een *.jar bestand.  De *.jar bestand bevat de opgegeven manifest.mf bestand, en bevat het *.class bestanden gevonden in de opgegeven map.
cmd_prompt_jar.jpg
Huidige map: C:\HelloMIDlet
jar  cfm  hi.jar  manifest.mf  -C .\output  HelloMIDlet.class
Complex hypothetische voorbeeld van het scheppen van een bestand *.jar
Stel dat een icoon afbeeldingsbestanden (bijv.  „icon.png“) is te verschijnen in een *.jar bestand als „/icon.png“.  (Opmerking: Program pictogrammen verschijnen niet op het Motorola T720 mobiele telefoon, maar wel op andere mobiele telefoon typen, en verschijnen in de MIDP emulator.) 

Stel er is een map genaamd „images“ met beeldbestanden (*.png formaat).  Stel deze directory, en al de afbeeldingen in de map, moet toegankelijk zijn voor de Java programma door de relatieve /images directory (bijvoorbeeld dat een afbeelding „a.png“ bereikbaar zijn met behulp van het pad „/images/a.png“). 

Stel dat al het *.class-bestanden aangemaakt door de preverify opdracht zijn vervat in een map genaamd „verified“.  Bijvoorbeeld, de gecontroleerde versie van de belangrijkste klasse, „MyApp.class“, zou in het „verified“ map, samen met de andere klassen van het programma.  Al deze lessen zijn ook toegankelijk te zijn in de root directory van de *.jar bestand. 

Het volgende commando zal een bestand dat *.jar behaalt de verschillende doelstellingen genoemd in de voorgaande punten.  Let op: de opdracht is uitgebreid tot meerdere regels tekst hier alleen voor de duidelijkheid.  Bij het invoeren van de opdracht bij een opdrachtprompt de opdracht mag geen witregels, anders wordt het commando interpreter zal interpreteren van de tekst als meerdere onafhankelijke commando's. 

jar
    cfmv             [Create JAR, Specify JAR Name, Add manifest.mf, Verbose]
    MyApp.jar        [Name of output JAR file]
    manifest.mf      [The manifest.mf file]
    icon.png         [Optional icon, specified by JAD as "/icon.png"]
    images           [Directory to add to JAR as "/images"]
    -C .\verified .
Het laatste deel van de opdracht is moeilijk te begrijpen.  Het heeft de volgende betekenis:  „Wijzig de huidige directory te .\verified, en vervolgens alle bestanden *.class gevonden in de relatieve directory '.' (*.class namelijk alle bestanden in de huidige map) aan bij de *.jar bestand.“  Omdat de directory was veranderd voordat vermelding van het pad van de klassen te zetten in de *.jar bestand, het lokale pad zal niet verschijnen in het relatieve pad wanneer de bestanden worden geplaatst bij de *.jar bestand. 

Bijvoorbeeld, stel de gecontroleerde klassen worden in de volgende directory: 

C:\MyApp\verified 

Stel er zijn klasse bestanden, zoals de volgende: 

C:\MyApp\verified\w.class 

Dan „-C .\verified .“  vermelding in de opdracht om de *.jar bestand, uitgaande van een huidige directory van „C:\MyApp“, zal resulteren in „w.class“ wordt geplaatst in de root directory van de *.jar bestand.  </ e>

Waarschuwing: Als de „-C“ optie is opgegeven, dan verandert de huidige werk-directory op dat moment van de verwerking van de totale sequentie van commando parameters aan het jar commando.  Daarom is de opdracht jar misschien klagen dat ze niet kunnen vinden en andere bestanden vermeld in de command parameters dan de „-C“ optie.  Als dit gebeurt, verplaatst simpelweg de „-C .\verified .“  worden de definitieve parameters van de totale opdracht. 

Het volgende toont verbose output van de jar commando. 
added manifest
adding: icon.png(in = 449) (out= 454)(deflated -1%)
adding: images/(in = 0) (out= 0)(stored 0%)
adding: images/a.png(in = 2463) (out= 2223)(deflated 9%)
adding: images/b.png(in = 1322) (out= 579)(deflated 56%)
adding: images/c.png(in = 3433) (out= 2874)(deflated 16%)
adding: images/d.png(in = 1524) (out= 801)(deflated 47%)
adding: w.class(in = 2570) (out= 1356)(deflated 47%)
adding: MyApplication.class(in = 4714) (out= 2169)(deflated 53%)
adding: x.class(in = 3239) (out= 1429)(deflated 55%)
adding: y.class(in = 14205) (out= 6481)(deflated 54%)
adding: z.class(in = 9448) (out= 5135)(deflated 45%)

4.7 Aanmaken en bewerken van een nieuw bestand *.jad

Een *.jad bestand is nodig zodat de mobiele telefoon kunnen beschrijft een computerprogramma om een persoon voor de persoon die beslist om het programma te downloaden.  De *.jad bestand ook een aantal indirecte uit de *.jar zelf. 
file_image_hi_jad.jpg
Een voorbeeld *.jad bestand beschrijft een *.jar bestand
Hier is het voorbeeld hi.jad bestand in plain text-formaat:
MIDlet-1: My_Description,, HelloMIDlet
MIDlet-Jar-Size: 1283
MIDlet-Jar-URL: http://www.colinfahey.com/hi.jar
MIDlet-Name: My_Midlet_Suite
MIDlet-Vendor: Colin Fahey, Inc.
MIDlet-Version: 1.0
Er zijn programma's die kunnen leiden tot de *.jad bestand, wat het eenvoudiger maakt om de „MIDlet-Jar-Size:“ veld elke keer als de *.jar bestand is veranderd (en de grootte van wijzigingen).  Als u zoeken op het internet vindt u nuttige J2ME programma's. 

Als de grootte veld specificeert niet de exacte byte totaal van de *.jar bestand heeft, dan kan de volgende foutmelding verschijnen na een geslaagde download naar een mobiele telefoon: „Download Failed“ (download mislukt). 

Voor de Motorola T720 mobiele telefoon, wordt het volgende foutbericht kan worden gebruikt om inidcate ongeldige velden in het *.jad bestand, of eventueel ongeldige velden in het bestand gegenereerd MANIFEST.MF binnen de *.jar bestand: „Failed: File Corrupt“ (mislukt: bestand corrupt). 
Opmerking: Als de *.jar-bestand in dezelfde directory als de overeenkomstige *.jad bestand op een Internet web server, dan is de *.jad bestand kan gewoon de bestandsnaam van het bestand *.jar, zonder vermelding van een volledige URL, zoals in het volgende voorbeeld: 

MIDlet-Jar-URL: hi.jar 

Tijdens het downloaden van deze bestanden vanaf een Apache Internet web server naar een Motorola T720 mobiele telefoon, is het aanvaardbaar om niet de volledige URL.  Echter, bij het downloaden van deze bestanden vanaf een Yahoo!  Internet web server naar een Motorola T720 mobiele telefoon, de poging om te downloaden zal falen, tenzij een URL volledige pad naar de *.jar bestand is opgegeven in de *.jad bestand, zoals in het volgende voorbeeld: 

MIDlet-Jar-URL: http://www.colinfahey.com/hi.jar 

Ik weet niet de reden voor dit probleem, en ik weet dat dit probleem niet van invloed op andere mobiele telefoons (gsm of dienstverleners).  Na het bepalen van de volledige URL voor de *.jar bestand in de *.jad bestand is natuurlijk lastig, omdat het verplaatsen van de bestanden naar verschillende locaties op een server zou moeten worden veranderd de informatie in alle *.jad bestanden.  Echter, met vermelding van de volledige URL zou kunnen maken van de *.jad meer betrouwbaar zijn voor bepaalde mobiele telefoons en bepaalde mobiele telefoon aanbieders. 

4.8 Test de *.jar bestand en de *.jad dossier bij de uitvoering van het programma

De volgende voert de klas gevonden in de *.jar bestand, beschreven door de *.jad bestand. 
cmd_prompt_midp_jar_jad.jpg
(Huidige map: C:\HelloMIDlet)
midp  -classpath c:\j2me\midp\classes;.\hi.jar  -descriptor hi.jad

4.9 Referenties naar J2ME, MIDP, CLDC ontwikkeling

Veel van wat ik hier gepresenteerd worden zijn te vinden op vele andere websites.  Maar ik corrigeerde enkele fouten gevonden op andere websites, en voegden er details ontbreken, en presenteert de complete ervaring van iemand die probeert te doen dit spul.  Hier zijn zeer informatieve links die mij geholpen de slag te gaan: 
http://wireless.java.sun.com/midp/articles/getstart
http://wireless.java.sun.com/midp/articles/setup

5. Complexe programma J2ME

5.1 Inleiding

De eenvoudig programma dat in de vorige sectie van dit document slechts een broncode bestand, en het programma doet bijna niets en is dus niet echt een goed voorbeeld van de mobiele telefoon programmeren. 

Mijn vriend Sam Robertson schreef een interessant programma dat J2ME leert een persoon te spelen het kaartspel „Blackjack“ (ook wel „21“).  Een speler wordt gepresenteerd „met“ een dealer „kaart, en“ de speler twee kaarten, en de speler moet beslissen wat te doen: „de verblijfsduur, hit, double-down, of“ worden gesplitst. 

Dit programma heeft zes broncode-bestanden.  Het programma reageert op input van de gebruiker, en hoeft eenvoudige tekening en tekst updates. 
sbj_screen_on_phone.jpg

5.2 Broncode

Klik op de onderstaande link om de broncode, en de *.jad bestand, „manifest.mf“ bestand en een batchbestand, alles in een handige ZIP bestand.
sbj.zip
Source code in een bestand ZIP
6090 bytes
MD5: bf3922035b7a4eef24e107d03b7524c9
Uittreksel naar een willekeurige directory, maar als u het uittreksel aan „c:\“ onder Windows, het volgende voorbeeld zal de discussie worden nog dichter bij uw werkelijke situatie.
sbj_directory_files.jpg
Extracting sbj.zip te „c:\“ creëert de directory „c:\sbj“

5.3 Manifest bestand

Dossier: „manifest.mf“:
MIDlet-1: My_Description,, SBJ_MidletT
MIDlet-Name: SBJ_MidletT
MIDlet-Vendor: Sam Robertson
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0

5.4 De batch-bestand op te bouwen het programma

De volgende batch-bestand is ruig, maar het dient als een voorbeeld van hoe je misschien de slag te gaan met het schrijven van uw eigen batch-bestand op te bouwen uw J2ME programma.  Dit voorbeeld batchbestand doet het volgende:
(1) Verwijder de map met de oude *.class bestanden; 
(2) Verwijder de map met de oude geverifieerd *.class bestanden; 
Maak een (3) „klassen“ output directory; 
(4) Compileer alle *.java bronnen in te *.class bestanden, met uitgang naar de „klassen“ directory. 
(5) Maak een „gecontroleerde“ output directory; 
(6) Preverify alle klassen „in“ de klassen directory, en zette de gecontroleerde klassen in „de“ gecontroleerde directory. 
(7) Maak een *.jar bestand en voeg de mainfest bestand en alle klassen in „de“ gecontroleerde directory; 
*(8) Test het programma via de preverified klassen direct; 
*(9) Test het programma via de *.jar en *.jad bestanden; 

(*...  Deze stappen worden uitgeschakeld (door commentaar) in mijn batch bestand.) 
sbj_build_sbj_bat_file.jpg
Het batchbestand „build_sbj.bat“ voor de opbouw van het programma
Hier is het hetzelfde bestand („build_sbj.bat“) in plain text-formaat:
rmdir /S /Q classes
rmdir /S /Q verified
del /F /Q  *.jar

mkdir classes

javac  -g:none  -target 1.1  -d .\classes  -bootclasspath c:\j2me\midp\classes  *.java

mkdir verified

preverify  -classpath c:\j2me\midp\classes;.\classes  -d .\verified  .\classes

jar  cvfm sbj. jar manifest.mf  -C  .\verified  .

REM  midp  -classpath c:\j2me\midp\classes;.\verified  SBJ_MidletT
REM  midp  -classpath c:\j2me\midp\classes;.\sbj.jar  -descriptor sbj.jad
REM  Finished

5.5 Gebouw van het prompt

Hier is het resultaat van de exploitatie van de „build_sbj.bat“ batchbestand op de opdrachtregel:
sbj_build_command_prompt.jpg
Het uitvoeren van de „build_sbj.bat“ batchbestand
Merk op dat de waarschuwende berichten voor de „rmdir“ en „del“ operaties geven aan dat er niets te verwijderen. 

U kunt zien dat de nieuwe directories (dwz „classes“ en „verified“) en de nieuwe *.jar bestand dat het gevolg is van het uitvoeren van het batchbestand:
sbj_new_files_after_build.jpg
Broncode bestanden en nieuw gegenereerde bestand

5.6 *.jad bestand

Voor implementatie van de sbj.jar bestand, moeten we het maken en bewerken van de sbj.jad bestand naar de juiste grootte *.jar in het juiste veld:
Dossier: sbj.jad
MIDlet-1: SBJ_MidletT, , SBJ_MidletT
MIDlet-Jar-Size: 7257
MIDlet-Jar-URL: sbj.jar
MIDlet-Name: Sam Blackjack Trainer
MIDlet-Vendor: Sam Robertson
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
Een persoon kan hierbij gaan om de toevoeging van de complete URL aan de *.jar bestand wanneer de *.jad bestand wordt gelegd op een internet site - maar ik ontdekt (door een experiment), dat ik in staat was om met vermelding van de volledige URL (dat wil zeggen, ik alleen de gespecificeerde *.jar bestandsnaam door zelf).  Echter, de invoering van de complete URL, maar ik wilde je even laten weten wat ik heb waargenomen.

5.7 Samenvatting

Na meerdere bronbestanden in uw project komt vaak voor, en in dit hoofdstuk gaven wij een grof voorbeeld van het bouwen van meerdere klassen, gevolgd door de verpakking en uitvoering. 

Raadpleeg de volgende sectie betreffende het gebruik van Sun Wireless Toolkit, waardoor het bouwen van toepassingen veel eenvoudiger. 

6. Sun „Wireless Toolkit (version 1.0.4_01)“

6.1 Inleiding

Sun biedt een gunstige ontwikkeling voor de bouw van milieu-en verpakkingskosten J2ME programma's: „Java 2 Platform Micro Edition (J2ME) Wireless Toolkit (version 1.0.4_01)“. 

(Let op: U moet het downloaden van de Java 2 SDK 1.4 zoals beschreven in een eerder deel aan het gebruik van deze toolkit.  Doet u dit nu als je niet al deze versie van de Java 2 SDK.) 

Ga naar het volgende Internet-site voor het downloaden van de toolkit: 

http://java.sun.com/products/j2mewtoolkit/ 
Let op!
 

NIET op de link klikt „2.0 Beta 1 English“ (momenteel boven download-optie) als je aan het doen zijn Motorola T720 ontwikkeling - omdat deze versie heeft een aantal MIDP-2.0 spul, en het verkrijgen van rond kan dit hoofdpijn. 
j2me_wireless_toolkit_2_0_download_page.jpg
Niet downloaden van deze versie!  („2.0 Beta 1 English“)
Ik heb geprobeerd deze versie, en ik heb uiteindelijk code te compileren met veel rommelige wijzigen van de instellingen, maar na alle moeite kreeg ik een uitzondering zekerheid toen ik probeerde uit te voeren.  Niet storen! 
Download de „1.0.4_01 English“ versie.  Hier is wat de download pagina er uit ziet: 
j2me_wireless_toolkit_1_0_4_01_download_page.jpg
De Sun J2ME Wireless Toolkit (version 1.0.4_01) download pagina
j2me_wireless_toolkit_1_0_4_01_download_page2.jpg
De Sun J2ME Wireless Toolkit (version 1.0.4_01) FTP site lijst
Dit zal download het volgende bestand: „j2me_wireless_toolkit-1_0_4_01-bin-win.exe“ 
Voer dit programma te installeren op uw systeem.

6.2 J2ME Wireless Toolkit: lancering werkbalk

Na de toolkit is geïnstalleerd, kunt u starten via de „Start“ (start) menu systeem:
j2me_wireless_toolkit_1_0_4_ktoolbar.jpg
Starten van het programma werkbalk
U kunt ook toegang krijgen tot MIDP-1.0 documentatie via de „Documentation“ item in deze Start (start) menu.
j2me_wireless_toolkit_2_0_wtk20_docs_api_index_html.jpg
J2ME Wireless Toolkit (version 1.0.4_01) documentatie

6.3 J2ME Wireless Toolkit: maak project en bouwen

j2me_wireless_toolkit_1_4_ktoolbar_window.jpg
De werkbalk is klaar.  Klik „New Project...“  om een nieuw project.
j2me_wireless_toolkit_1_4_ktoolbar_new_project.jpg
New Project: Typ in het project naam (wordt JAR naam en de naam van het nieuwe project directory) en typ in MIDlet class naam (klasse afgeleid van MIDlet, in wezen de belangrijkste klasse van uw aanvraag). 
j2me_wireless_toolkit_1_4_ktoolbar_project_created.jpg
Werkbalk: project gemaakt.  Merk op dat de console vertelt je waar we uw *.java bron bestanden, enz.  (bijv.  „c:\WTK104\apps\sbj\src“, etc) 
j2me_wireless_toolkit_1_4_ktoolbar_project_settings.jpg
Klik op „Settings...“  op de werkbalk om dit project settings menu. 
Minachting „MIDlet-Jar-Size“ het gebied (met de „waarde“ 100 bytes) voor nu.  We zullen uiteindelijk leiden tot de juiste waarde te krijgen set. 
j2me_wireless_toolkit_1_4_ktoolbar_project_midlet_settings.jpg
Klik op het tabblad MIDlets van het project instellingen.
Klik op de enige rij in de tabel („MIDlet-1“) te markeren en te selecteren.  Vervolgens klikt u op de knop „Edit“. 
j2me_wireless_toolkit_1_4_ktoolbar_project_no_icon.jpg
Schakel het gebied „Icon“ indien u niet beschikt over een *.png bestand aan in je *.jar bestand. 
Doe het volgende: 

(1) Project --> Clean: verwijdert alle bestanden *.class;
(2) Build : Builds *.class alle bestanden en preverifies;
(3) Project --> Package --> Create Package : produceert *.jar en *.jad
j2me_wireless_toolkit_1_4_ktoolbar_clean_build_create_package.jpg
Het resultaat van de opbouw van de *.jar en *.jad
Wanneer u deze drie stappen, waarvan de daaruit voortvloeiende *.jar en *.jad is onmiddellijk klaar voor de uitvoering in de lokale emulator, of voor onmiddellijke inzet op uw internet site voor het downloaden van anderen „over-the-air“ (OTA).  De *.jar grootte *.jad veld in het bestand wordt correct.  Vergeet niet te doen stap (3) elke keer dat u herbouwen! 

Nu kan je testen door middel „Run“ (uitvoeren) toets. 
j2me_wireless_toolkit_1_4_ktoolbar_project_launch.jpg
j2me_wireless_toolkit_1_4_ktoolbar_project_running.jpg
Hitting „Run“ voor het project leest de *.jad in op de emulator.  U kunt kiezen voor een specifieke MIDlet te starten (meestal slechts een). 
Kopieer gewoon de *.jar en *.jad bestanden van de opgegeven locaties (gerapporteerd door de werkbalk van de console tijdens een build van het project), zoals:
(Uit de console:)
Wrote c:\WTK104\apps\sbj\bin\sbj.jar
Wrote c:\WTK104\apps\sbj\bin\sbj.jad
Doe deze bestanden direct op uw internet site zonder modificatie, en het zou moeten werken.  Hier is wat ik zag op mijn mobiele telefoon na het downloaden van deze gecompileerd aanvraag „via de ether“ (OTA)
sbj_screen_on_phone.jpg
Sam Robertson's Blackjack Trainer (sbj.jar) uitvoeren op mijn mobiele telefoon

7. Het aanbieden van software op een internet site

7.1 Zorg ervoor dat de Internet web server specificeert MIME typen *.jar bestanden en bestanden *.jad

Als u een Apache Internet web server, moet je een bestand met de naam „.htaccess“ binnen uw website root directory.  De „.htaccess“ bestand stelt u in staat om Apache configuratie, zoals het toevoegen of dwingende MIME file types.  U dient zich te voegen in het specificeren van de MIME soorten die overeenkomt met *.jar bestanden en *.jad bestanden, zoals blijkt uit bestand de volgende tekst: 
htaccess_image.jpg
Mijn aangepaste „.htaccess“ bestand voor de Apache Internet web server.  Opmerking: Ik heb dit bestand „.htaccess.txt“ louter om het bestand gemakkelijk te bewerken bij het gebruik van de Windows besturingssysteem.  De naam van het bestand moet worden veranderd in „.htaccess“ voordat het bestand kan worden gebruikt met de Apache Internet web server. 
Hier is mijn simpele .htaccess bestand als platte tekst:
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/java-archive jar
AddType text/vnd.wap.wml wml
Blijkbaar is het maken of wijzigen van dit bestand resulteert in een onmiddellijke wijziging van Apache server gedrag.  Ik denk dat de Apache server controleert of de modificatie datum en tijd van de „.htaccess“ bestand bij elke nieuwe inkomende transactie, en de server weer geladen dat bestand als de wijziging datum en de tijd is veranderd. 

Als u een ander soort Internet web server, moet u bepalen hoe verder te specificeren MIME typen, en u moet ervoor zorgen dat *.jar bestanden en bestanden worden toegewezen *.jad de juiste MIME types. 

Je zult weten wanneer de MIME soorten niet zijn opgezet als de mobiele telefoon weigert te downloaden van uw *.jad bestand en rapporteert de volgende foutmelding: 

„406: Not Acceptable“ 

7.2 Optioneel bieden links naar de *.jad bestand binnen HTML of WML documenten

De Motorola T720 J2ME mobiele telefoon met AT&T dienst is in staat om het downloaden van een bestand *.jad rechtstreeks, door het intikken van het URL van de *.jad bestand naar de mobiele telefoon.  Dit zal waarschijnlijk werken voor andere J2ME van mobiele telefoons met andere mobiele telefoon aanbieders. 

Toch is het wellicht handiger voor de mensen voor het downloaden van de *.jad dossier bij het selecteren van een link in een document of HTML binnen een WML document.  (Opmerking: WML is nu achterhaald.  De meeste mobiele telefoons kunnen nu interpreteren HTML.) 
file_image_hi_html.jpg
Een eenvoudige HTML document met een link naar een bestand *.jad
file_image_hi_wml.jpg
Een eenvoudige WML (WAP) pagina met een link naar een bestand *.jad  (Opmerking: WML is nu achterhaald.  De meeste mobiele telefoons kunnen nu interpreteren HTML.) 

8. Het downloaden van software vanaf een internetsite

De volgende afbeeldingen tonen de exacte volgorde van de acties Ik heb voor het downloaden en uitvoeren van de MIDlet ontwikkeld en geïmplementeerd zoals beschreven in de vorige paragrafen hierboven.  Deze beelden zijn foto's van het scherm van mijn mobiele telefoon. 
t720_screens_download_program.jpg
(1) Hoofdscherm: Wanneer u de telefoon opent, ziet u het hoofdscherm.  Druk op de middelste knop om naar het hoofdmenu. 
(2) Main Menu: Ga naar het item „WebAccess“. 
(3) WebAccess: Ga naar het item „Go To URL“. 
(4) Enter URL: Typ de URL van een *.jad bestand (of van een HTML document, of van een WML document). 
(5) Details; Deze informatie werd ontleed *.jad uit het bestand.  Druk DOWNLD voor het downloaden van de *.jar bestand. 
(6) Download Complete; Wacht op dit bericht te verdwijnen; 
(7) Installing; Wacht op dit bericht te verdwijnen; 
(8) xxxx bytes transferred; Wacht op dit bericht te verdwijnen; 
(9) Installed; Wacht op dit bericht te verdwijnen; 


Wanneer de WebAccess menu verschijnt weer, nadat het programma is geïnstalleerd, eenvoudigweg afrit elk menu om terug te keren naar het hoofdscherm. 
t720_screens_start_program.jpg
(1) Hoofdscherm: Wanneer u de telefoon opent, ziet u het hoofdscherm.  Selecteer de optie „Games & Apps“ via het hoofdmenu, of druk op de cursor naar beneden op het hoofdscherm. 
(2) Java Powered: Wacht op dit scherm te verdwijnen. 
(3) Games & Apps: Selecteer het object met de naam van je programma! 
(4) Yay!  Een succesvolle uitvoering van uw programma! 
Het programma verschijning op de mobiele telefoon is zeer vergelijkbaar met de verschijning in de emulator.

9. Download foutmeldingen en de installatie foutberichten

9.1 Motorola T720 (J2ME) foutmeldingen

De volgende fouten berichten zijn alleen relevant voor de Motorola T720 (GSM/J2ME) mobiele telefoon. 

9.1.1 „Download Failed“

Oorzaak # 1
Elk bestand (HTML, JAD, JAR, MID, GIF) over 1644 bytes zal veroorzaken deze fout voor bepaalde Internet web hosts en servers.  Hier is een korte lijst van hosts en servers: 
Host / Server                                               Error
===================================================    =================
Apache                                                       No
Microsoft Personal Web Server (direct from your PC)          No
Earthlink (Apache)                                           No
Yahoo! (custom server)                                       Yes
Het probleem is te wijten aan een fout in de firmware Motorola T720 GSM/J2ME, welke ervoor zorgt dat het downloaden van bestanden in fragmenten te mislukken.
De enige oplossing is om over te schakelen Internet web hosts of server type.  Andere typen mobiele telefoon dit probleem niet hebben. 
Oorzaak # 2
De „MIDlet-Jar-Size:“ veld van een *.jad dossier geen aanwijzingen voor de exacte byte totaal van de overeenkomstige *.jar bestand.

9.1.2 „Failed: File Corrupt“

Oorzaak # 1
De *.jar bestand gebruikt API functies die niet beschikbaar zijn op de specifieke mobiele telefoon. 

Bijvoorbeeld, MIDP 2.0 functies zijn niet beschikbaar op de Motorola T720 GSM/J2ME mobiele telefoon (die alleen is MIDP 1.0 functies).  Een programma kan uitvoeren binnen een emulator, maar kunnen niet worden uitgevoerd op de mobiele telefoon. 

De oplossing is het zoeken naar MIDP 2.0 functies in de broncode en ze te vervangen door MIDP 1.0 functies, of beëindigen van de functies die vereisen dat de MIDP 2.0 functies. 
Oorzaak # 2
De „manifest.mf“ bestand gebruikt voor het maken van de *.jar bestand (via de „jar“ utility) fouten bevat. 

Zorg ervoor dat de „manifest.mf“ bestand heeft de volgende versies van CLDC en MIDP: 
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
Het gehele bestand „manifest.mf“ bijna precies zo ziet als het volgende: 
MIDlet-1: My_Description,, HelloMIDlet
MIDlet-Name: My_Midlet_Suite
MIDlet-Vendor: Colin Fahey, Inc.
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
Elke regel van de tekst in de „manifest.mf“ bestand, inclusief de laatste regel van het bestand moet eindigen met een „carraige terugkeer“ (CR; 13; 0x0d) karakter, gevolgd door een „line feed“ (LF; 10; 0x0a) karakter. 

De enige „manifest.mf“ velden van het bestand in uw eigen versie van het bestand dat moet afwijken van de hier getoonde voorbeeld de eerste drie gebieden die in het voorbeeld.  De laatste drie velden moet een exacte match met het voorbeeld, en de laatste twee karakters van het bestand moet „het“ vervoer „line feed terugkeer en“ na het laatste veld. 

Hier zijn mogelijke problemen in uw versie van de „manifest.mf“ bestand: 
(1) Uw „manifest.mf“ bestand bevat tekens die niet ASCII tekens; (Kijk eens naar een grafiek van ASCII karakters; elk teken buiten het bereik van 0 tot en met 127 is ongeldig); 
(2) Uw „manifest.mf“ bestand „niet“ over een „line-feed“ (LF) teken na iedere „carriage return“ (CR) karakter aan het einde van elke regel; 
(3) Uw „manifest.mf“ bestand heeft onzichtbare spaties of tabs aan het einde van elke regel vóór de beëindiging (CR)(LF) lijn; 
(4) Uw „manifest.mf“ bestand bevat een „Manifest-Version:“ lijn; 
(5) De laatste regel van uw „manifest.mf“ bestand niet eindigen met een (CR)(LF) lijn wordt beëindigd, maar in plaats daarvan gewoon tot het einde van het bestand; 
(6) Uw „manifest.mf“ bestand niet de juiste velden en de exacte volgorde van de velden in zoals getoond in het voorbeeld hierboven; 
(7) Uw CLDC versie is niet precies 1.0 of uw MIDP versie is niet precies 1.0; 
(8) Uw leverancier heeft naam karakters die niet ASCII tekens (bijv.  geen Unicode-tekens zijn toegestaan); 
(9) Uw „manifest.mf“ bestand heeft geen spatie na de komma in de tweede „MIDlet-1:“ lijn; 
Misschien dat sommige van de hierboven genoemde gevallen niet echt voor problemen zorgen voor veel mobiele telefoons, maar de opheffing van het geheel van de hierboven opgesomde gevallen in staat kan stellen de download te slagen.  Na het downloaden is voltooid, kunt u experimenteren met variaties van de „manifest.mf“ bestand te ontdekken wat andere dingen die je kunt doen zonder dat het downloaden van fouten.  Wanneer de „manifest.mf“ bestand wordt gewijzigd, is het belangrijk om te controleren of het downloaden van het programma blijft werken voor alle doelgroepen van mobiele telefoons en mobiele telefoon aanbieders.  Sommige telefoons en diensten zijn minder flexibel zijn dan anderen. 

„manifest.mf“ Wanneer een bestand wordt toegevoegd aan een *.jar bestand via de jar programma, de jar programma maakt een nieuwe versie van het manifest bestand in de *.jar bestand.  De gegenereerde versie van het manifest bestand in de *.jar bestand is „MANIFEST.MF“.  De jar programma kunnen toevoegen aan dit bestand velden die niet bestaan in de „manifest.mf“ dossier van de programmeur.  Niet extract „MANIFEST.MF“ een bestand uit een *.jar bestand, tenzij u bereid bent om wat velden en maken de resterende velden er precies hetzelfde uitzien als het voorbeeld „manifest.mf“ bestand hierboven aangegeven. 

9.1.3 „Unsupported Content Type“

Oorzaak # 1
De mobiele telefoon kan niet instemmen met de MIME type gemeld door de externe server voor een specifiek bestand. 

Bijvoorbeeld, JPG beeldbestanden worden niet ondersteund door de Motorola T720 en zal deze fout veroorzaken.

Deze fout kan ook optreden als de MIME type voor een ondersteund bestandstype (bijv.  GIF, MID, JAD, JAR) is niet correct gerapporteerd door de server.  Een persoon moet erg voorzichtig voor de vermelding van het exacte type MIME voor de ondersteunde bestandstypen. 
Oorzaak # 2
Het bestand cachegeheugen op de mobiele telefoon zelf moet worden gezuiverd (bijv.  Browser Settings -> Clear Cache). 

Als u onlangs toegevoegd MIME typen naar een externe server, en vervolgens geprobeerd een bestand te downloaden dat eerder had verzuimd te installeren als gevolg van een onjuiste of ontbrekende MIME type, dan is de file cache op de mobiele telefoon kan een belemmering vormen voor het downloaden van het bestand opnieuw met de goede MIME type. 

Het is ook mogelijk dat de externe bestand werd gewijzigd en dat de cached versie is defect en is het voorkomen van het gerepareerde bestand versie worden gedownload als een vervanging. 

Het wissen van het cachegeheugen van de browser op de mobiele telefoon moet ervoor zorgen dat een volgende download profiteert van de nieuwste server configuratie (bv.  nieuwe MIME instellingen) en remote file-updates. 
Oorzaak # 3
[Van Motorola documentatie: http://developers.motorola.com/developers//wireless/global/emea/other/UCT.html]
Hoe te vermijden „Unsupported Content type“ fouten in WAP 

Als je een fout in WAP zeggen Unsupported Content type, het is niet noodzakelijkerwijze het gevolg van de content-type setting.  Veel WAP pagina's bevatten speciale tekens, zoals de Zweedse (å ö ä), en om te zorgen dat deze correct wordt weergegeven moet u aangeven welke tekenset die u gebruikt.  Om aan te geven welke tekenset wordt gebruikt op een WAP pagina kunt bewerken van het Content-Type kop in de server naar aanleiding van de tekenset, bijvoorbeeld „Content-Type: text/vnd.wap.wml; iso-8859-1“.  Wanneer een gebruiker krijgt hier het antwoord van een server, moet beschikken over alle benodigde informatie om de inhoud correct. 

Echter, er is een probleem met deze aanpak.  Alle telefoons aan te geven voor de gateway die tekenset ze ondersteunen door gebruik te maken van „Accept-Charset“ in de koptekst.  Volgens HTML specificaties, moet dit worden vergeleken met de tekenset gespecificeerd in een server antwoord, en als ze niet met elkaar overeenkomen, wordt de fout Unsupported Content type moet worden gegenereerd. 

Om het probleem nog ingewikkelder, sommige WAP gateways geen zorgen hebben over het vergelijken van de tekenset die wordt ondersteund door de aangezochte apparaat, zodat de inhoud niet goed weergegeven op deze apparaten.  Een andere complicatie is dat de string met vermelding van de tekenset is hoofdlettergevoelig, maar sommige WAP gateways behandelen hen als case sensitive strings. 

Alles samen zullen er heel verschillende resultaten, afhankelijk van welk apparaat je ook gebruikt, WAP gateway die u gebruikt en wat de reactie is server. 

De enige manier om er zeker van zijn dat uw inhoud wordt weergegeven is het altijd controleren wat karakter is aanvaard door de opdrachtgever en transformeren uw reactie op dit karakter ingesteld voordat u deze verzendt. 

9.1.4 „406: Not Acceptable“ („The server cannot generate a response that your client can accept.“)

Oorzaak # 1
Je hebt een Verizon-telefoon! 

Verizon staat niet toe haar klanten (GIF) het downloaden van afbeeldingen, beltonen (MIDI) of programma's, uit willekeurige Internet web-servers.  Men moet gebruik maken van hun „Get It Now“ dienst, of gebruik een USB kabel en de „Get Around 'Get It Now' (GAGIN)“ software. 

Oplossing: gewoon wachten op de concurrentie op de „vrije markt“ op te heffen „gesloten platformen.“  De hele technologie zou kunnen worden achterhaald door de tijd dat dit lukt, maar dit is wat er gebeurt als bedrijven worden geleid door hebzucht alleen. 
Oorzaak # 2
De foutmelding geeft aan dat de MIME type in verband met de bestandsextensie (bijvoorbeeld .gif, .mid, .jar) van het bestand wordt gedownload niet is gespecificeerd door de Internet web server.

Als u een Apache Internet web server, bijvoorbeeld, dan moet je wijzigen „.htaccess“ een bestand, het toevoegen van de volgende lijnen:
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/java-archive jar
AddType text/vnd.wap.wml wml
AddType audio/midi mid

9.1.5 „413: Requested Entity Too Large“

Oorzaak # 1
De server waarop het bestand wordt gedownload is niet het type voor MIME dat bestand (bijvoorbeeld GIF, MID, JAR).  Zo is de mobiele telefoon gaat ervan uit dat het bestand is onbewerkte tekst.  Ook de mobiele telefoon mogelijk een limiet op de grootte (in bytes) van tekstbestanden die kleiner is dan de limiet op de grootte (in bytes) van binaire bestanden (bv.  GIF, MID, JAR).  Daarom is een binair bestand geïnterpreteerd als een tekst bestand is waarschijnlijk groter zijn dan de maximaal toegestane grootte van een tekstbestand is, en dus oorzaak van de fout. 

Als u een Apache Internet web server, bijvoorbeeld, dan moet je veranderen „.htaccess“ een bestand, het toevoegen van de volgende lijnen:
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/java-archive jar
AddType text/vnd.wap.wml wml
AddType audio/midi mid
Oorzaak # 2
Blijkbaar deze fout kan ook optreden, zelfs als de externe server heeft de goede MIME soorten vastgesteld.  Ik heb nog niet bepaald wanneer deze fout optreedt in plaats van de „Download Failed“ voor deze situatie. 

Kennelijk kan de Motorola T720 GSM/J2ME mobiele telefoon niet kan verwerken een aspect van de HTTP 1.1 specificatie die het mogelijk maakt om bestanden op te splitsen in stukken, waarbij meerdere „GET“ verzoeken. 

Bij gebruik van de mobiele telefoon Motorola T720 GSM/J2ME het downloaden van bestanden van Internet bepaalde webserver types, elk bestand (bijv.  HTML, JAD, JAR, MID, GIF) groter dan 1644 bytes zal leiden tot deze fout.  Hier is een korte lijst van Internet web hosting providers en de vraag of het Internet web hosting provider een probleem veroorzaakt voor de Motorola T720 GSM/J2ME mobiele telefoon:
Host / Server                                               Error
===================================================    =================
Apache                                                       No
Microsoft Personal Web Server (direct from your PC)          No
Earthlink (Apache)                                           No
Yahoo! (custom server type)                                  Yes
Het probleem is te wijten aan de firmware in de Motorola T720 GSM/J2ME mobiele telefoon, die van invloed is op haar vermogen om te downloaden bestanden in fragmenten. 

De enige oplossing is, bij het downloaden naar de Motorola T720 GSM/J2ME mobiele telefoon, is te voorkomen dat bepaalde Internet web hosting server typen.  De meeste andere soorten mobiele telefoon dit probleem niet hebben, en dus dit probleem kan nu veilig worden genegeerd. 

9.1.6 „Connection unsuccessful.  Try again later.“

Oorzaak # 1
Deze fout heeft niets te maken met de Internet-server die als host fungeert voor de gevraagde bestand. 

Als je deze error krijgt, stel ik voor dat u de volgende dingen: 
(1) Clear cache van de browser; 
Clear (2) de browser geschiedenis; 
(3) Zet de telefoon uit; 
(4) Verwijder de batterij; 
(5) Wacht een paar seconden; 
(6) Plaats de batterij terug in op de telefoon; 
(7) Power De telefoon; 
(8) Probeer het opnieuw gedownload; 
Ik kreeg de foutmelding „Connection unsuccessful.  Try again later.  gedurende enkele dagen nadat ik voor het eerst een mobiele telefoon gekocht.  Dan, door willekeurig toeval, Ik verwijderde de batterij.  Toen ik de batterij terug in naar de mobiele telefoon, had ik onmiddellijk de toegang tot het internet. 

Ik kreeg deze fout meerdere malen tijdens de daaropvolgende zes maanden, en de bovenstaande procedure werd gerestaureerd en toegang tot het internet per keer.  Ik heb niet bepalen in welke stap van de procedure misschien het meest belangrijk, maar ik denk dat het simpelweg verwijderen van de batterij en het aanbrengen van de batterij terug in naar de mobiele telefoon kan worden volstaan. 

Naar mijn mening is deze foutmelding is te vaag.  Waarom was de poging om verbinding te maken mislukt?  Was de mobiele telefoon service netwerk te druk?  Was de mobiele telefoon dienst is, „Gateway“ server niet functioneert?  Is mijn mobiele telefoon niet ontvangen of doorzenden van voldoende signaalsterkte?  Wanneer zou een goed moment om te proberen het nogmaals downloaden?  Tien seconden vanaf nu?  Een uur vanaf nu?  Een week vanaf nu?  De foutmelding zou nuttig zijn als het ware meer specifieke informatie over de oorzaak van het probleem en als het meer specifiek over een mogelijke oplossing. 
Oorzaak # 2
Als u een „Master Reset“, of als u nooit in staat geweest om toegang te krijgen tot het internet, dan inspecteert de netwerkinstellingen op de mobiele telefoon.  Voor een voorbeeld van de netwerk-instellingen (voor de Motorola T720 GSM/J2ME mobiele telefoon, voor AT&T dienst in de Los Angeles, California), zie de sectie aangegeven door de volgende link: 
AT&T mobiele telefoon configuratie-instellingen (voor het netwerk)

10. Het maken, aanbieden, en het downloaden van „beltonen“

10.1 Maak of verwerving van een MIDI bestand (*.mid)

U kunt of het verwerven van een MIDI geluidsbestand (*.mid) uit elke bron.  Ik vond het thema van muziek naar de televisie-uitzending „Knight Rider“ (1982-1986) in MIDI formaat (bijv.  „knightrider.mid“) door een eenvoudige zoekopdracht van het internet. 

Het volgende plaatje geeft je enig idee van hoe een MIDI bestand wordt weergegeven in een MIDI editor.  Het is niet nodig om een MIDI editor om muziek op je telefoon.  U kunt een bestaande MIDI bestand (*.mid) uit elke bron.  U kunt echter ook gebruik maken van een MIDI editor van uw keuze en maak je eigen originele polyfone muziek. 
home_studio_midi_knight_rider.jpg
Cakewalk Home Studio: playing „knightrider.mid“

10.2 Zorg ervoor dat uw Internet web server kent de MIDI MIME type

Als u een Apache Internet web server, bijvoorbeeld, dan moet je veranderen „.htaccess“ een bestand, het toevoegen van de volgende lijnen: 
AddType audio/midi mid
De „.htaccess“ bestand zal geven of te overschrijven de MIME soorten aangeduid met de server voor bestanden van verschillende soorten (meestal aangegeven door het bestand extensies, zoals .MID, .GIF, .JAR). 

Indien u reeds toegevoegd MIME andere soorten voor andere bestandstypen, uw complete „.htaccess“ bestand kan met de volgende tekst:
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/java-archive jar
AddType text/vnd.wap.wml wml
AddType audio/midi mid
Blijkbaar is het maken of wijzigen van dit bestand resulteert in een onmiddellijke wijziging van Apache server gedrag.  Ik denk dat de Apache server controleert of de modificatie datum en tijd van de „.htaccess“ bestand bij elke nieuwe inkomende transactie, en de server weer geladen dat bestand als de wijziging datum en de tijd is veranderd. 

Als u een ander soort Internet web server, moet u bepalen hoe verder te specificeren MIME typen, en u moet ervoor zorgen dat *.jar bestanden en bestanden worden toegewezen *.jad de juiste MIME types. 

Je zult weten wanneer de MIME soorten niet zijn opgezet als de mobiele telefoon weigert te downloaden van uw *.jad bestand en rapporteert de volgende foutmelding: 

„406: Not Acceptable“ 

10.3 Doe de MIDI bestand (*.mid) op uw Internet web server

Ik copieer MIDI een bestand met de naam „kr.mid“ naar de root-directory van mijn Internet web server.  U kunt gebruik maken van software, zoals „Filezilla“ om de overdracht FTP eenvoudig en handig. 

10.4 MIDI Download het bestand naar uw mobiele telefoon via de telefoon service internet service

Voor de Motorola T720 GSM/J2ME mobiele telefoon, het downloaden van een bestand MIDI begint met de „WebAccess“ menu.  „Go To URL“ selecteren, gevolgd door het intikken van het URL van de MIDI bestand, begint de download.  Bijvoorbeeld, ik heb getypt in de volgende URL:
http://www.colinfahey.com/kr.mid
Als de download succesvol is, en als je gebruik maakt van een Motorola T720 cellular phone is, krijgt u de optie voor het opslaan van het bestand op uw mobiele telefoon.  Wanneer u beslist voor het opslaan van het bestand, krijg je de mogelijkheid om gewoon te slaan in uw set van beltonen of in de plaats het instellen van het bestand naar de huidige beltoon (die ook als neveneffect winkels in uw set-beltonen) . 
De volgende afbeeldingen vat het proces van het downloaden en afspelen van MIDI bestanden voor de Motorola T720 GSM/J2ME mobiele telefoon.  Andere J2ME enabled mobiele telefoons, mobiele telefoon met andere aanbieders, zijn die waarschijnlijk een soortgelijke procedure te downloaden.  Als uw mobiele telefoon dienstverlener is Verizon, dan bent u van geluk, niets van dit alles zal werken, en je moet verder gaan en koop een „Android“ telefoon te dragen tot de vernietiging van „de“ gesloten „telefoon“ markt! 
t720_screen_midi_download.jpg
(1) Hoofdscherm: Druk op de desbetreffende knop om het hoofdmenu. 
(2) Main Menu: Ga naar de „WebAccess“ item. 
(3) WebAccess: Ga naar de „Go to URL“ item. 
(4) Enter URL: Typ de URL van een MIDI bestand (*.mid) op een website op internet. 
(5) Connecting: Wacht tot het downloaden te beginnen.  (Als u „406: Not Acceptable“ ontvangen het foutbericht, dan is de Internet web server heeft niet toewijzen van een passende MIME type voor MIDI bestanden (*.mid)).) 
(6) Downloading: Wacht tot het downloaden klaar is. 
(7) Download Complete: Wacht op dit scherm te verdwijnen. 
(8) MIDI Playback: De MIDI bestand onmiddellijk begint af te spelen.  Druk op de menu-knop om naar de Tone Menu, en verder met stap (9), of druk op de knop „STORE“ en ga naar stap (12). 
(9) Tone Menu: Je hebt de optie van het spelen ... 
(10) Tone Menu: U hebt de mogelijkheid om details. 
(11) Details: Hier zien we de grootte in bytes. 
(12) Store Options: Van (8) stap kunnen we druk op de knop „STORE“ te krijgen tot dit menu.  U heeft de mogelijkheid van het opslaan op de telefoon doet de verzameling tunes.  Hit „SELECT“ op te slaan. 
(13) Stored: De MIDI tune is opgeslagen. 
(14) Total Bytes Transferred: Dit is gewoon een aanmelding van het aantal bytes gedownload, zodat je niet verrast door uw toekomstige mobiele telefoon service bill! 

10.5 Speel het MIDI bestand op elk gewenst moment op de mobiele telefoon

U kunt spelen MIDI de opgeslagen bestanden te allen tijde op je mobiele telefoon, en u kunt elke MIDI bestand als je ring geluid.
t720_screen_midi_playback.jpg
(1) Hoofdscherm: Druk op de desbetreffende knop om naar het hoofdmenu. 
(2) Main Menu: Ga naar „Media Center“. 
(3) Media Center: Ga naar „My Tones“. 
(4) My Tones: Highlighted toon begint het afspelen onmiddellijk.  U kunt de naam van de „EDIT“ optie.  Hitting de menu-knop geeft je nog andere opties. 

10.6 Stel de meldingsprofiel gebruik te maken van een bestand MIDI

Ga via het menu de volgende schermen:

(1) Hoofdscherm 
(2) Main Menu 
(3) Ring Styles: Druk „SELECT“ 
(4) [Silent, Soft, Loud] Detail: Druk „CHANGE“ 
(5) Calls: [current ring style/tune]: Druk „CHANGE“ 


Ga maar lijst van de ring stijlen (stille, trillingen stijlen, permanente ring tunes, etc), en aan de onderkant ziet u uw gedownloade muziek.  Simply „SELECT“ druk op de knop om uw nieuwe ring tune actief! 

11. Het maken, aanbieden, en het downloaden van afbeeldingen

11.1 Maak een 120 * 160 GIF beeldbestand (*.gif)

De volgende stappen kunnen worden gebruikt voor het maken van een 120 * 160 GIF beeldbestand (*.gif) geschikt voor de weergave op de Motorola T720 GSM/J2ME mobiele telefoon, ofwel als een achtergrondafbeelding voor het hoofdscherm, of als een afbeelding in de galerie. 
(1) Open een willekeurige afbeelding bestand met Microsoft Paint of Adobe Photoshop of enig ander geschikt beeldbewerking software; 
(2) Scale of de afbeelding bijsnijden tot 120 pixels breed en 160 pixels hoog (dwz een 120 * 160 pixel afbeelding); 
(3) Sla het bestand op in een formaat GIF afbeelding (*.gif); (Adobe Photoshop Binnen de manier om dit te doen is: File -> Export -> Gif89a) 
Het afbeeldingsbestand moet in de GIF image file-formaat, zodat de Motorola T720 mobiele telefoon kan decoderen en weergeven van de afbeelding.  Als de afbeelding afmetingen zijn precies 120 * 160, dan zal het beeld perfect op het scherm van de mobiele telefoon Motorola T720, anders zal het beeld blanco grenst aan twee kanten. 
Opmerking: Ik heb gedownload en weergegeven *.gif een image-bestand dat werd 118 * 120 pixels, dat kleiner is dan de schermgrootte van 120 * 160.  Ik denk dat het resterende deel van het scherm wordt gevuld met een kleur geselecteerd uit het rand van het beeld.  Misschien is de kleur van de pixel pixel in de linker bovenhoek van het beeld wordt gebruikt als de kleur voor de lege grenzen rond twee zijden van het beeld. 
De Motorola T720 mobiele telefoon 4096 kleuren kan weergeven, wat ik denk is gecodeerd als 12-bit RGB (4-4-4).  Daarom denk ik beelden met kleine kleurschakeringen die span grote gebieden dienen te worden vermeden, omdat de grenzen van deze hellingen zal zeer duidelijk en storend werken aan een persoon te kijken naar het beeld.  Ook het formaat GIF zelf is beperkt tot slechts 256 verschillende kleuren, zodat een persoon moet zich bewust zijn van deze beperking ook.  In ieder geval is het altijd het beste om gewoon kijken naar een beeld op de mobiele telefoon om te weten of het beeld is geschikt voor de mobiele telefoon. 
si.gif
Space Invaders (space invaders): een 120 * 160 GIF beeld

11.2 Doe de GIF beeldbestand (*.gif) op uw Internet web server

Ik copieer GIF een bestand met de naam „si.mid“ naar de root-directory van mijn Internet web server.  U kunt gebruik maken van software, zoals „Filezilla“ om de overdracht FTP eenvoudig en handig. 

11.3 GIF Download het bestand naar uw mobiele telefoon via de telefoon service internet service

Voor de Motorola T720 GSM/J2ME mobiele telefoon, het downloaden van een GIF image file begint met het „WebAccess“ menu.  „Go To URL“ selecteren, gevolgd door het intikken van het URL van de GIF bestand, begint de download.  Bijvoorbeeld, ik heb getypt in de volgende URL:
http://www.colinfahey.com/si.gif
Als de download succesvol is, en als je gebruik maakt van een Motorola T720 cellular phone is, krijgt u de optie voor het opslaan van het bestand op uw mobiele telefoon.  Wanneer u beslist voor het opslaan van het bestand, krijg je de mogelijkheid om gewoon te slaan in uw set in plaats van afbeeldingen of het instellen van het bestand wordt de huidige achtergrond (dat wil „zeggen,“ behang). 
De volgende afbeeldingen samenvatten van het proces van het downloaden GIF image bestanden voor de Motorola T720 GSM/J2ME mobiele telefoon.  Andere J2ME enabled mobiele telefoons, mobiele telefoon met andere aanbieders, zijn die waarschijnlijk een soortgelijke procedure te downloaden.  Als uw mobiele telefoon dienstverlener is Verizon, dan bent u van geluk, niets van dit alles zal werken, en je moet verder gaan en koop een „Android“ telefoon te dragen tot de vernietiging van „de“ gesloten „telefoon“ markt! 
t720_screen_image_download.jpg
(1) WebAccess: Ga naar de „Go to URL“ item. 
(2) Enter URL: Typ de URL van een GIF beeldbestand (*.gif) op een website op internet. 
(3) Connecting: Wacht tot het downloaden te beginnen.  (Als u het „406: Not Acceptable“ foutbericht, dan is de Internet web server heeft niet toewijzen van een passende MIME type voor GIF beeldbestanden (*.gif)).) 
(4) preview van de gedownloade afbeelding, met de optie om „STORE“ (winkel) het beeld in het geheugen van de mobiele telefoon; 
(5) Store Options: De GIF afbeelding kan eenvoudig worden opgeslagen, of het kan worden gebruikt ter vervanging van de huidige „achtergrond“ (achtergrond van het hoofdscherm), of het kan worden gebruikt „als“ screensaver (dwz een afbeelding die wordt weergegeven wanneer de mobiele telefoon knoppen zijn niet geperst, voor een bepaalde hoeveelheid tijd). 
(6) Changed: Wallpaper [image name]: Dit is gewoon een kennisgeving dat de „achtergrondafbeelding“ is gewijzigd. 
(7) Het uiterlijk van de in het hoofdscherm van de mobiele telefoon na de „achtergrond“ (dat wil zeggen, achtergrond) afbeelding is veranderd.  „The“ Space „Invaders“ hebben veroverd mijn mobiele telefoon! 

11.4 Animated GIF afbeelding voor gebruik „als“ screensaver op de mobiele telefoon

Om te downloaden GIF een geanimeerde afbeelding die u als „screensaver“ een afbeelding op uw mobiele telefoon, volgt u de instructies in het vorige deel van dit document voor het voorbereiden en het downloaden van een afbeelding. 
Als de afbeelding is een GIF animeren GIF, dan wordt de „screensaver“ toont deze animatie. 
Eenvoudigweg de afbeelding als „screensaver“ beeld na de afbeelding is gedownload. 
De volgende geanimeerde GIF image gebruikt kan worden als een geanimeerde „screensaver“ Motorola T720 GSM/J2ME beeld op de mobiele telefoon. 
sun.gif
GIF een geanimeerde afbeelding die gebruikt kan worden als een „screensaver“ te animeren beeld op de Motorola T720 GSM/J2ME mobiele telefoon.
Helaas is de Motorola T720 mobiele telefoon niet animeren „behang“ van de afbeelding.  Het zou heel gaaf zijn om de mobiele telefoon en bekijk de dynamisering van een achtergrond op het hoofdscherm!  :^( 

Je ziet alleen een geanimeerde GIF verschijnen op de Motorola T720 mobiele telefoon als de telefoon gaat „screensaver“ modus, wat zou kunnen vereisen, 30 seconden of meer te starten.  (U kunt deze vertraging in een van de menu's.)  Het scherm is waarschijnlijk verlichting uit te schakelen voordat de schermbeveiliging verschijnt.  „De“ schermbeveiliging wordt niet weergegeven tijdens een telefoongesprek.  Daarom, gezien al deze feiten, „de“ screensaver functie van de mobiele telefoon Motorola T720 rammelt. 

12. Motorola T720 GSM/J2ME mobiele telefoon instellingen voor de AT&T gsm-netwerk

12.1 Inleiding

Deze sectie van dit document is het onwaarschijnlijk is dat dat zinvol is voor iedereen, omdat dit gedeelte wordt beschreven instellingen voor een zeer specifieke mobiele telefoon (Motorola T720 GSM/J2ME) voor een zeer specifieke mobiele telefoon service provider (AT&T) voor een zeer specifieke regio (Zuid-Californië).  Maar ik deze informatie voor historisch belang. 

12.2 Web Sessions instellingen

Main Screen
  Main Menu
    More... (Not necessary if list view instead of icon view)
      Web Sessions
        mMode (NOTE: Do [New Entry] if no nMode entry)
          (*** Hit menu key, not LAUNCH! ***)
            Edit
              Name:           mMode
              Homepage:       http://home
              WAP IP 1:       10.250.250.250
              WAP Port 1:     9203
              WAP IP 2:       10.250.250.250
              WAP Port 2:     9203
              Timeout:        2 minutes
              CSD No. 1:      ____________ (blank)
              User Name 1:    ____________ (blank)
              Password 1:     ____________ (blank)
              Speed (Bps) 1:  9600
              Line Type 1:    ISDN
              CSD No. 2:      ____________ (blank)
              User Name 2:    ____________ (blank)
              Password 2:     ____________ (blank)
              Speed (Bps) 2:  9600
              Line Type 2:    Modem
              GPRS APN:       proxy
              User Name:      ____________ (blank)
              Password:       ____________ (blank)
Ook is er DNS een instelling voor Java programma's:
Main Menu
  Settings
    Java Tools
      DNS IP:  10.250.1.10

12.3 Reacties

(1) een „master reset“ doen zal de WAP Port nummers naar „9201,“ zodat deze moet worden gewijzigd in „9203.“ 

(2) De secundaire WAP IP and Port is ingesteld op dezelfde IP en haven als de primaire WAP instellingen.  Ik was in staat gebruik te maken van „mMode“ (dat wil zeggen, ga naar elke URL) met een volledig lege secundaire WAP instelling, maar ik had „Line Type 1: Modem“ op dat moment.  Ik weet niet of is dit voor „ISDN“ maakt het waarschijnlijker dat de secundaire WAP instellingen worden gebruikt. 

(3) Een „volledige reset“ maakt de „Timeout:“ gebied „15 minutes“.  Verander de waarde naar „2 minutes“. 

(4) De „Name:“, „Homepage:“ en „GPRS APN:“ velden betrekken alle typen van letters en symbolen handmatig. 

(5) De gebieden die aangetoond leeg in het voorbeeld hierboven zijn echt bedoeld om geen tekst.  De blanks zijn niet per ongeluk. 

13. Links naar andere mobiele telefoon middelen

13.1 Motorola J2ME SDK 3.0

Motorola heeft een software development kit SDK met een emulator in staat te bootsen Motorola vele telefoons, waaronder de T720.  U kunt dit SDK gratis, en dit hoef je niet CodeWarrior om de telefoon te gebruiken emulator opgenomen met de SDK, ondanks al het vermelden van CodeWarrior op de Motorola website.  Ook in het algemeen denk ik dat je kunt krijgen door zonder CodeWarrior of Motorola SDK zelfs als je aan het doen zijn professionele ontwikkeling voor de T720.

U moet zich registreren bij Motorola tot zelfs over hun J2ME SDK leren, laat staan downloaden. 

http://kb.motorola.metrowerks.com/motorola/developmentTools.do

Er zijn een aantal functies voor het afspelen van „Compact MIDI“ en zelfs „*.wav“ bestanden.  Installeer en lees de documentatie voor meer details. 
Hier is een opmerking die ik ontvangen in een e-mail:
De Motorola J2ME SDK geeft u (onder andere) „skins voor“ de emulator, zodat de emulator zal er uitzien als de telefoon die je programmering voor.  Het is meer dan cosmetisch.  Schermgrootte kan variëren bijvoorbeeld, dus als je iets ontwerpen waar schermgrootte zaken, maar zeker helpt om naar een emulator die overeenkomt met de doelstelling.  De SDK bevat ook enkele Motorola gemaakt Java open klassen genaamd Lightweight Windowing Toolkit dat u kunt bepalen wat u nodig heeft om een aanvraag met een echte UI - diverse UI widgets. 

U kunt zonder gekund, maar als je aan het doen was serieus werk zou je waarschijnlijk wil het hebben.  Als ik was het maken van dingen voor Sony Ericsson of Nokia of elke andere telefoon, zou ik willen dat hun SDKs ook. 
Hier volgt een citaat uit Motorola's website over hun SDK:
De Motorola Software Development Kit (SDK) voor de J2ME™ platform is een instrument dat wordt gebruikt voor het ontwikkelen en testen van programma's geschreven in de programmeertaal Java.  De SDK bevat toepassingen die maken het u gemakkelijk te lanceren MIDlets (J2ME™ Programs) met behulp van de Motorola J2ME™ device emulator.  Samen kunt u deze tools te ontwikkelen en te debuggen uw J2ME™ programma's in emulatie voor downloaden naar een target-apparaat.  De Motorola SDK geïntegreerd kunnen worden in Metrowerks' CodeWarrior™ Wireless Studio, Professional Edition, Version 7. 

Deze versie van de SDK bevat een groot aantal toebehoren voor de prestaties en stabiliteit.  Aan elk van de functionaliteit van de vorige versie wordt ondersteund, met deze nieuwe functies: 

Nieuwe mobiele telefoons wordt ondersteund door deze versie: A830. 

Nieuwe functionaliteit wordt ondersteund door deze versie: 

A830 - Gaming API, Serial Port Connectivity, HTTPS protocol ondersteunen.
All devices - Verbeterde grafische prestaties

De SDK ondersteunt de volgende toestellen:
*Motorola Accompli (008/6288 and 388)™
*Motorola T280i
*Motorola T720
*Motorola v60i
*Motorola v66i
*Motorola iDEN i1000
*Motorola iDEN Platform
*Motorola StarTAC™
*Motorola i85s

13.2 Sun ONE Studio 4 update 1, Mobile Edition

Een vriend van mij had blijkbaar geen probleem downloaden en gebruiken van deze toolkit - die blijkbaar geeft je alles wat je nodig hebt (JDK, MIDP, CLDC) en extra tools om de JAD, enz.  Ik heb het zelf niet geprobeerd.  Hier zijn andere opmerkingen over deze toolkit: 
Citaat uit een Slashdot terbeschikkingstelling: 
Je kon jezelf hebt opgeslagen sommige probleemloze installatie van alle verschillende toolkits.  Gewoon downloaden [sun.com] Sun ONE Studio 4 update 1, Mobile Edition, zijn helemaal gratis (als in bier), en is een grote geïntegreerde ontwikkel-omgeving (ongeveer 20 MB download).  Alle tools, emulators en demo's van het artikel zijn gebundeld.  Sinds vorige week ben ik te draaien onder RH Linux 7.2, met 512mb van ram (YOU NEED LOTS OF RAM!!!). 

Duurde maar een minuut [sun.com] van ICT regestration het scherm om door middel van intensivering van de worm spel in de debugger  (Ik ben er altijd dol op de game worm / slang / nibbles in al zijn incarnaties, en de demo-versie bedoeld is prachtig geprogrammeerde - simpel, maar object-georiënteerd en multi-threaded in een zeer klein bedrag van de code). 

Je moet wel registreren om te downloaden.  Ondersteunde platformen: Linux, Windows, Solaris.
Citaat uit een Slashdot terbeschikkingstelling:
Van de sun downloaden faq [sun.com]: 
„Door de manier waarop onze download service-sessie, dan kunt u niet hervatten gedeeltelijke downloads door te klikken op de link weer in het browservenster.  Integendeel, opent u de download manager programma dat u gebruikt en het downloaden vanuit de download manager zelf.

We blijven werken met onze ingenieurs in staat te stellen ondersteuning voor meer download managers op meer platforms.  Voor nu echter, gelieve af, evenals andere download managers en nutsvoorzieningen als u problemen met downloaden.“
Het downloaden van grote bestanden uit sun onder linux is echt moeilijk voor ongeveer een jaar nu.  De enige download-manager tot voor kort had ik in staat geweest om aan de slag was DAP onder windows (waarschuwing: Spyware).  In principe meeste downloadmanagers (prozgui, getright, opera) niet in staat zal zijn om te gaan met Sun's [onoprechtheid].  Spotprijs plaats stelt hun website te werken gewoon, Sun hebben hun eigen download manager [sun.com].  Het is geschreven in java, en zijn piepkleine 140KB alleen!  Het verrassende is dat dit een werkelijk uitstekende download manager, kleine voetafdruk, geen browser hijacking, geen adware / spyware, werken onder een OS, automatische verificatie-bestand, automatische unzips, en vast als een rots 

13.3 Willekeurige forumbijdrage:

De Jad en Jar bestanden worden alleen de bestanden die nodig zijn voor het draaien van een applicatie op een telefoon en, afhankelijk van de telefoon en de methode voor het overbrengen van de app op de telefoon, kunt u alleen de jar. 

Als de aanvragen dienen te worden gezonden Over the Air (OTA), dat wil zeggen via een web URL, moet u een koppeling op een pagina gelezen door de telefoon (bijvoorbeeld wml, cHtml, cHtml) aan de JAD bestand.  Voor OTA downloads heeft u ook nodig voor het instellen van uw webserver te behandelen jar en jad bestandstypen.  In apache moet u de volgende regels toevoegen aan de httpd.conf bestand: 

AddType text/vnd.sun.j2me.app-descriptor jad 
AddType application/java-archive jar 

Ook moet u ervoor zorgen dat de URL voor de jar bestand is de URL voor de JAR bestand op de server, en niet de lokale URL 

Als aan de andere kant die u wilt overbrengen via IR, Bluetooth of een kabel hoeft u alleen maar de overdracht van de bestanden naar de telefoon te installeren en te draaien.  De JAD bestand wordt over het algemeen dat specifiek wordt gebruikt om de telefoon informatie die nodig is voor OTA downloads en als zodanig is de Nokia 7650 en enkele andere modellen, hoef je alleen maar de overdracht van het dossier jar voor niet-OTA transfers. 

13.4 http://wireless.java.sun.com/midp/questions/sar/

SAR (of WTP-SAR) staat voor Segmentation and Reassembly.  Het is een optionele functie van de Wireless Transaction Protocol (WTP) binnen WAP.  SAR definieert een methode voor een WAP gateway te breken een groot bericht (JAR een bestand dat u downloadt, bijvoorbeeld) in kleine brokjes (de segmentering) en voor de telefoon in op het stuk weer in elkaar (de herbouw). 

Niet alle telefoons gebruiken SAR, maar de meeste zullen toegang webservers WAP via een gateway.  Nokia gebruikt SAR, terwijl Motorola gebruikt kenmerken van HTTP 1.1 op te halen kleine stukjes van een bestand een op een tijdstip en vervolgens weer bijeenbrengen ervan. 

Een probleem dat zich voordoet met betrekking WAP gateways MIME soorten teruggestuurd door de web server.  Als een gebruiker een JAD of JAR bestand en de server geeft de verkeerde MIME type, de gateway en vervolgens de telefoon zal zich bezighouden met de overdracht onjuist.  Om te zorgen voor een goede downloaden van MIDlets, gebruikt u de volgende MIME types: 

text/vnd.sun.j2me.app-descriptor jad 
application/java-archive jar 

13.5 Willekeurige forumbijdrage

u moet krijgen MIME juiste instellingen op de server te bewaren die .JAD/.JAR bestanden.  Daarna kun je apps downloaden naar het apparaat.  Houd er rekening mee dat: - dit proces is tamelijk specifieke apparaat (niet noodzakelijkerwijs gebruik van WA protocol)  - Je kunt beter hebben absolute paden naar .JAD en .JAR vastgesteld (dwz http://www.fooserver.com/repository/JoeDoeApp.JAD) 

13.6 Willekeurige forumbijdrage

Althans in de Siemens apparaten, heeft u een specifieke configuratie voor Java, die verschilt van die van WAP en GPRS.  U kunt navigeren door WAP, maar wanneer een midlet is gevonden, een ander installatieprogramma wordt automatisch gewijzigd om de download.  In de M50 handig, moet u de profielen Java volgens de parameters van je provider, in de c55 handig, dezelfde set heet „HTTP profile“ en het wordt ook gebruikt voor andere soorten download (bijvoorbeeld http aansluitingen op de MIDlet) . 

13.7 Diverse interessante links over geavanceerde MIDlet ondertekening stuff

http://wirelesssoftware.info/midp_2.0/javax/microedition/midlet/doc-files/PKIAppendix.html

13.8 Very cool MIDlet programmering invoering

http://wireless.java.sun.com/midp/articles/getstart

13.9 http://wireless.java.sun.com/midp/articles/deploy/

Voor implementatie van uw draadloze toepassingen op afstand: 

Upload uw aanvraag bestanden (JAD en JAR) naar een externe webserver.  Als uw project de naam spellen, bijvoorbeeld, het uploaden van bestanden: games.jad en games.jar uit de bin project directory van uw huis (bijvoorbeeld <toolkit>/apps/games/bin).  Merk op dat de twee bestanden moeten eindigen op in dezelfde map op de server. 

Configureer de webserver zodat hij herkent JAD en JAR bestanden: 

Voor de JAD bestandstype, stelt de bestandsextensie te .jad en de MIME type te text/vnd.sun.j2me.app-descriptor. 

Voor de JAR bestandstype, stelt de bestandsextensie te .jar en de MIME type te application/java-archive. 

Hoe gaat het configureren van de webserver is afhankelijk van welke u gebruikt.  Bijvoorbeeld, als u Tomcat zorgt u ervoor dat uw web.xml bestand bevat de volgende lijnen: 

<mime-mapping> 
<extension>jad</extension> 
<mime-type>text/vnd.sun.j2me.app-descriptor</mime-type> 
</mime-mapping> 
<mime-mapping> 
<extension>jar</extension> 
<mime-type>application/java-archive</mime-type> 
</mime-mapping> 


Verander uw JAD bestand MIDlet-Jar-URL woning aan de URL van uw JAR bestand.  Bijvoorbeeld, in het exemplaar van games.jad die je hebt geüpload naar de server, verander ... 

MIDlet-Jar-URL: games.jar 

...  tot ...

MIDlet-Jar-URL: http://YourWebServerAddress:port/pathTo/games.jar 

13.10 Diverse links

http://www.microjava.com/articles/techtalk/midp?PageNo=3 
http://www.corej2me.com/DeveloperResources/sourcecode/general/multipleMIDlets/index.shtml 

13.11 Nokia J2ME ontwikkeling van programma's links

Van een Nokia site:
Nokia's J2ME uitvoering bestaat uit de industrie standaard MIDP 1.0 en CLDC 1.0.  Het platform is verlengd door de Nokia User Interface (UI) API.  Het geeft ontwikkelaars toegang tot bepaalde fundamentele telefoon functionaliteit die niet door CLDC 1.0 of MIDP 1.0.  De Nokia UI API biedt eenvoudig toegang tot audio-vermogens, trillingen, display verlichting, evenals enkele grafische verbeteringen. 
Van een e-mail bericht dat ik heb ontvangen:
Dus Nokia lijkt echt openstelling van de telefoons is het aan elke vorm van op maat die u maar kunt bedenken.  Je zou kunnen toevoegen trillingen java games, voeg cartoon bellen naar foto's je neemt, en zelfs foto's uploaden naar je site!  Je zou kunnen schrijven naar uw eigen server, en mensen kunnen uploaden spullen bij u! 
Hier zijn een paar coole 7650 links:
DOOM op de 7650!!: http://www.wildpalm.co.uk/Doom7650.html 
De 7650 pagina: http://www.nokia.com/nokia/0,1522,,00.html?orig=/phones/7650/index.html 
Nokia J2ME FAQ: http://www.nokia.com/nokia/0,5184,2776,00.html 
Download SDKs, J2ME tutorials, en meer: http://www.forum.nokia.com 

13.12 Mobiele telefoon programma links

(1) http://midlet.org 
(2) http://spruce.jp/freemidlets 
(3) http://www.gameloft.com 
(4) http://www.microjava.com 

14. J2ME versus BREW

14.1 Inleiding

Er zijn twee dominante software platforms voor mobiele apparaten: J2ME en BREW.  Veel mobiele telefoon providers hebben besloten aan te bieden telefoons met ondersteuning J2ME: AT&T, T-Mobile en Sprint.  Een belangrijke vervoerder heeft besloten om alleen bieden telefoons met ondersteuning BREW: Verizon. 

Een mobiel apparaat dat J2ME kan uitvoeren J2ME programma's, maar kan niet worden uitgevoerd BREW programma's.  Een mobiel apparaat dat BREW kan uitvoeren BREW's, maar kan niet worden uitgevoerd J2ME programma's. 

Fabrikanten van mobiele apparaten bieden vaak verschillende versies zijn gebaseerd op verschillende draadloze uitzending normen.  Bijvoorbeeld, Motorola biedt twee versies van de T720: GSM en CDMA.  Toevallig, de GSM versie van de T720 ondersteunt J2ME's, en de CDMA versie van de T720 ondersteunt BREW toepassingen.  Dus, hoewel draadloze uitzending normen zijn technisch niet in verband met de telefoon besturingssystemen, de omstandigheden in de markt hebben geleid tot deze toevallige correlatie. 

14.2 Mobiele telefoon service providers beslissen wat een klant kan doen met een mobiele telefoon apparaat

Hier is een samenvatting van wat mobiele telefoon service providers in staat klanten te doen: 
[A]  AT&T :
   [1] J2ME Applications:
         Download from any site on the Internet, Over The Air (OTA);
   [2] GIF Files (Images):
         Download from any site on the Internet, Over The Air (OTA);
   [3] MIDI Files (Ring Tones):
         Download from any site on the Internet, Over The Air (OTA);
   [4] Data Cable:
         Cannot (officially) be used to transfer files;

[B] Verizon :
   [1] BREW Applications:
         Download for a fee through Get It Now! (GIN), Over The Air (OTA);
   [2] GIF Files (Images):
         Download for a fee through Get It Now! (GIN), Over The Air (OTA);
   [3] MIDI Files (Ring Tones):
         Download for a fee through Get It Now! (GIN), Over The Air (OTA);
   [4] Data Cable:
         Cannot (officially) be used to transfer files;

[C] Sprint :
   [1] J2ME Applications:
         **** UNKNOWN ****
   [2] GIF Files (Images):
         Download from any site on the Internet, Over The Air (OTA);
   [3] MIDI Files (Ring Tones):
         Download from any site on the Internet, Over The Air (OTA);
   [4] Data Cable:
         Cannot (officially) be used to transfer files;

[D] T-Mobile :
   [1] J2ME Applications:
         Download for a fee through T-Mobile's service, Over The Air (OTA);
   [2] GIF Files (Images):
         **** UNKNOWN ****
   [3] MIDI Files (Ring Tones):
         **** UNKNOWN ****
   [4] Data Cable:
         Cannot (officially) be used to transfer files;
AT&T biedt de beste klant en ontwikkelaar toegang tot de mobiele telefoon naar apparaten en multimedia bestanden op het internet.  Klaarblijkelijk is AT&T heeft besloten zich te concentreren op de business van het vervoer bytes via hun netwerken, in plaats van te trachten om in het bedrijf van de verkoop van multimedia-inhoud. 

Verizon is de meest verstikkende cellenstructuur telefoon dienstverlener van hen allen.  „Get It Now.“  hun business model, waarbij kunstmatig beperken van de klant gebruik van hun eigen mobiele telefoon inrichtingen ter bescherming van de werkzaamheden van de verkoop van multimedia-inhoud, inspireerde veel gefrustreerde klanten op de beëindiging van hun contracten met Verizon of ga op zoek naar manieren om de bypass „Get It Now.“  portaal.  Net zoals bioscopen en sport arena's kan aanrekenen extreem hoge prijzen voor levensmiddelen omdat klanten niet kunnen eenvoudig toegang tot alternatieve bronnen van voedsel in die omstandigheden (dat wil zeggen, er is een gebrek aan toegang tot de concurrentie), Verizon kan aanrekenen extreem hoge prijzen voor de toegang tot multimedia files en software programma's, omdat klanten niet kunnen eenvoudig toegang tot alternatieve bronnen voor multimedia-bestanden en software programma's. 

14.3 Binary Runtime Environment for Wireless (BREW)

BREW is „Binary Runtime Environment for Wireless, een propriëtaire software platform ontwikkeld door QUALCOMM.  Voor meer informatie over BREW, gaat u naar de volgende internetsite: 

http://www.qualcomm.com/brew

De SDK kan worden gedownload van Qualcomm.  In 2002 heeft de SDK zou kunnen worden gebruikt voor het bouwen van software met behulp van Microsoft Visual C++ 6.0, en de programma's zouden kunnen worden overgeheveld naar een mobiele telefoon zonder „een“ test „handtekening.“ 

Alle telefoons met Verizon contracten gebruik BREW.  Alle software, afbeeldingen en muziek moet worden overgebracht via Verizon's „Get It Now.“  portaal, en meestal gaat betalen dan de bandbreedte van het netwerk kosten. 

14.4 Java 2 Platform, Micro Edition (J2ME)

J2ME is „„Java 2 Platform, Micro Edition“,“ een sterk „geoptimaliseerd“ Java runtime environment.  Voor meer informatie over J2ME Ga naar de volgende internetsite: 

http://java.sun.com/j2me

U heeft misschien al gedaan wat Java programmering.  J2ME bevat veel van de Java klassen gebruikt voor de desktop computer programma's.  Het spreekt voor zich dat elke Java branches die zijn pure Java code, en dus niet afhankelijk van hardware of besturingssysteem functies, kan worden samengesteld uit te voeren binnen het kader van een Java virtuele machine. 

Een persoon kan creëren draden, contactdozen, graphics doeken, etc, heel gemakkelijk.  Een persoon is alleen nodig voor het downloaden van een bestand *.JAR (en eventueel een *.JAD-bestand) voor het installeren van een applicatie op een mobiele telefoon. 

Het downloaden van de Java SDK is gratis.  De documentatie voor Java degelijk is.  Miljoenen mensen hebben ontwikkeld code voor Java.  Er zijn tal van fora op het internet bespreken van verschillende aspecten van Java programmering. 

In enkele minuten van het zoeken naar het Internet, vond ik honderden interessante softwareprogramma's en beelden en geluidseffecten, alles voor de Motorola T720 GSM/J2ME mobiele telefoon - en alle bestanden kost niets te downloaden. 

Ik ben erg opgetogen over de mogelijkheid om volledig gebruik te maken van de multimedia-aspecten van mijn onroerend goed (dat wil zeggen, mijn mobiele telefoon) zonder te betalen mijn mobiele telefoon service provider voor iets meer dan het gebruik van hun gsm-netwerk. 

14.5 Mijn BREW en Verizon horrorverhaal

Ik heb software voor zowel J2ME en BREW platforms, en naar mijn mening, ik denk dat beide technologieën hebben hun voordelen en nadelen, en beide zijn zeer goed in staat worden gebruikt voor het maken van geavanceerde programma's erg gemakkelijk. 

Echter, een bedrijf dat geïnteresseerd is in het creëren en verkopen van software voor mobiele telefoons dient te beginnen met een enkele „vraag:“ Als ik „software ontwikkelen, zal ik worden toegestaan om het te verkopen?“ 

Indien een bedrijf ontwikkelt software voor de J2ME platform, dan de meeste mobiele telefoon dienstverleners waarmee klanten naar andere sites en het downloaden van J2ME software, zonder dat de kosten dan de kosten van het overmaken van bytes via het mobiele telefoonnetwerk.  Zodoende zal een software development bedrijf is zeker in staat zijn om toegang te hebben tot potentiële klanten, en kunnen hun eigen regelingen te treffen voor het innen van geld van klanten voor alle software-aankopen. 

Indien een bedrijf ontwikkelt software voor de BREW platform, Verizon vervolgens besluiten of zij al dan niet de software zal beschikbaar zijn voor verkoop aan klanten.  Verder zal Verizon extract een groot percentage van de verkoopprijs van de software voor het privilege van het recht krijgen om software te verkopen via hun exclusieve portal. 

Hier is mijn BREW en Verizon horror verhaal: 

Ik had een uniek idee voor een software programma voor mobilofoons in een tijd dat mobiele telefoons begonnen te kunnen uitvoeren BREW en J2ME programma's.  Ik was erg opgewonden, omdat ik dacht dat ik zou kunnen creëren en publiceren van een uniek programma voor deze platforms, lang voordat alle concurrenten gereed zou zijn voor het maken van een vergelijkbaar product.  Ik was ervan overtuigd dat ik misschien eindelijk iets doen in mijn leven dat me rijk zou maken.  Dus, ik sluit mijn werk en inmiddels is begonnen met een BREW versie van mijn software idee.  Na zes maanden van hard werken, en zonder inkomen, was ik klaar met mijn BREW programma!  Ik was klaar voor te leggen aan Qualcomm voor de proef. 

Dat is wanneer ik een gruwelijke ontdekking: Zelfs als mijn programma voorbij de kwaliteitsborging testen, Verizon zou moeten instemmen met de verkoop van mijn software - en Verizon zou afkeuren van mijn software om welke reden dan ook (verder dan de voor de hand liggende redenen van zijn beledigende of in concurrentie met een ander aspect van Verizon's business).  Ik vond het gewoon niet inbeelden deze mogelijkheid.  Alles wat ik lees over BREW ontwikkeling impliceert dat de uitdaging was om de kwaliteitsborging worden getest.  Niets wat ik lees vermeld behoeft te beschikken over de software die door cellulaire telefoon dienstverleners.  Ik zou niet verbaasd zijn te vernemen dat de mobiele telefoon aanbieders kunnen kiezen om niet te verkopen beledigende of kwaadaardige programma's, maar zulke overwegingen leek zo onbelangrijk voor mijn specifieke project dat ik niet eens denken aan de meer algemene concept dat mobiele telefonie aanbieders kan kiezen om niet te verkopen gewone software programma's! 

Een van mijn vrienden, die reeds verkocht meerdere video game programma's via Verizon, vroeg een representatieve Verizon als Verizon zou goedkeuren mijn software voor de verkoop op hun netwerk ...  De Verizon vertegenwoordiger „zei:“ nee, want er waren een paar andere software programma's in dat genre al ruim.  Mijn software is een woordenschat tutor (met speciale aandacht voor de SAT en GRE gestandaardiseerde tests), maar de Verizon vertegenwoordiger zei dat het woord game genre was „al“ zo vol, ondanks het feit dat er minder dan 10 woord-gerelateerde programma's totaal in „de“ Get „Nu kopen!-Portaal,“ en de andere programma's waren heel anders (bv kruiswoordpuzzels, „Scrabble“, „Boggle“, etc).  Mijn programma was een technologische prestatie: Het opgeslagen definities van de woordenschat van 5000 woorden, samen met synoniemen en antoniemen en woord betekenis groepen (zodat quizvragen zou zijn uitdagend), in een programma dat was minder dan 1 MB.  Mijn programma zou zijn uniek op de markt voor vele maanden, en mogelijk voor een paar jaar. 

Ik was boos, depressief, en financieel kapot.  Zes maanden werk werd verspild, omdat Verizon wilde alleen maar dat was bepaalde software te verkopen duizenden exemplaren in hun verkoop-portaal, en de vertegenwoordiger Verizon dacht niet dat mijn software had een hoge omzet potentieel. 

Hier is de belangrijkste les die ik geleerd van deze bittere ervaring:  Controleer elk onderdeel van een business plan vóór aanvang van de werkzaamheden.  (Idealiter zou elk onderdeel van het business plan kon worden getest herhaaldelijk door feitelijke uitvoering van de verschillende kritieke procedures, vóór en tijdens de inspanning voor het creëren van het product.) 

Ik had moeten controleren of er sprake zou zijn eventuele belemmering voor de verkoop van mijn software voordat ik begonnen met de ontwikkeling van de software.  Ik heb ontdekt dat Verizon kunnen kiezen om niet te verkopen zodat ik mijn software. 

Ik leerde een tweede les:  Vermijd situaties waarin andere mensen de mogelijkheid hebben om te bepalen of u al dan niet toegang hebben tot klanten! 
colinfahey.com
contactgegevens
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية