[J2ME] Waar is het streven naar platform onafhankelijkheid?

Pagina: 1
Acties:

  • bvp
  • Registratie: Maart 2005
  • Laatst online: 23-02 12:02
Toen ik voor het eerst met Java begon was één van de eerste dingen die ik hoorde:
"Java is geweldig, volledig platform onafhankelijk door de JVM."

Nu is het zo dat ik kort geleden een hobby project had bedacht om in J2ME te gaan doen.
Hierbij onder andere bedacht dat ik het irritant vond om gebruikers steeds hun gebruikersnaam en wachtwoord in te laten voeren.
Dus dacht ach ik gebruik het mobile number van de sim als identificatie en laat de gebruiker dan alleen nog maar een pincode invoeren.
Kwam (met logisch nadenken zelf ook wel achter moeten komen) tot de conclusie dat dit nummer niet af te lezen is van de sim omdat dit 'slechts' een nummer is dat door je SP gebruikt wordt.

De IMEI is wel van de sim af te lezen, maar nu komt het.

Er zijn voor elk merk verschillende API's uitgebracht die je toegang geven tot deze features.
Je leest hem uit met System.getProperty("IMEI"); of System.getProperty("com.FABRIKANT.imei"); etc. etc.
Dit is slechts maar 1 vb. die ik zo tegengekomen ben naar anti-platform onafhankelijkheid.

Ook op verschillende java-games sites etc. worden verschillende spellen voor verschillende types mobile telefoons aangeboden.
Dus ook voor de 'goeroes' is het hiermee dus niet mogelijk om platform onafhankelijk te schrijven.

Heeft J2ME zo dan wel voldoende bestaansrecht of iemand ideeën of dit in de toekomst gefixed gaat worden?

Verder las ik gister in een SAP Netweaver boek dat zij bij SAP MI (Mobile Infrastructure) wel naar mobile onafhankelijkheid streven.
Binnenkort ga ik hier veel meer over leren maar mijn kennis hierin is nu nog nihil.
Iemand hier ervaring mee hoe dit ongeveer werkt?

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 22-02 07:12

Nick_S

++?????++ Out of Cheese Error

Ik denk dat het een bewuste keuze/foutje van Sun is geweest om telefoonsgegevens niet in de API op te nemen, waardoor fabrikanten dit dus zelf op hebben moeten lossen. Hierdoor is er geen standaard manier, helaas.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06-2025

Varienaja

Wie dit leest is gek.

Waar heb je het over... de naamgeving van een system-wide property? Natuurlijk is dat platformafhankelijk. Zo heb ik in java bijvoorbeeld:
code:
1
2
3
4
Runtime.getRuntime().exec(new String[] {
           '"'+"C:/Program Files/Multimedia/Winamp/Winamp.exe"+'"',
           '"'+link+'"'
           });

En dat is dus ook totaal niet platform-onafhankelijk.

Als je echt platformonafhankelijkheid wilt, dan is Java een leuk hulpmiddel, maar je moet zelf ook blijven opletten ;)

Siditamentis astuentis pactum.


Verwijderd

gho vreemd he... laat ik een windows specifieke applicatie aan roepen met JAVA. waarom werkt het toch niet op linux. vergelijk de platform onafhankelijkheid maar eens met C# of zo. Nou dan is JAVA erg platform onafhankelijk... maar over J2ME ja die heeft wel een paar gaten zitten in zijn API

  • bvp
  • Registratie: Maart 2005
  • Laatst online: 23-02 12:02
Varienaja schreef op maandag 06 maart 2006 @ 18:18:
Waar heb je het over... de naamgeving van een system-wide property? Natuurlijk is dat platformafhankelijk.
.............
En dat is dus ook totaal niet platform-onafhankelijk.

Als je echt platformonafhankelijkheid wilt, dan is Java een leuk hulpmiddel, maar je moet zelf ook blijven opletten ;)
Ik geef hier alleen een vb. van een system-property. Natuurlijk in dit geval niet helemaal de juiste keuze maar wel het eerste wat me nu te binnen schoot.
Verder gaf ik juist daarom ook als voorbeeld aan dat verschillende j2me-games ook puur voor verschillende platforms ontwikkeld worden.
Het is dus niet zo van goh ik maak een j2me game en het werkt op nokia/samsung/siemens etc.
Dat bedoelde ik juist dat SUN hier dan toch meerdere steken heeft laten vallen???

Verwijderd

bvp schreef op maandag 06 maart 2006 @ 16:18:
Toen ik voor het eerst met Java begon was één van de eerste dingen die ik hoorde:
"Java is geweldig, volledig platform onafhankelijk door de JVM."

Nu is het zo dat ik kort geleden een hobby project had bedacht om in J2ME te gaan doen.
Hierbij onder andere bedacht dat ik het irritant vond om gebruikers steeds hun gebruikersnaam en wachtwoord in te laten voeren.
Dus dacht ach ik gebruik het mobile number van de sim als identificatie en laat de gebruiker dan alleen nog maar een pincode invoeren.
Kwam (met logisch nadenken zelf ook wel achter moeten komen) tot de conclusie dat dit nummer niet af te lezen is van de sim omdat dit 'slechts' een nummer is dat door je SP gebruikt wordt.

De IMEI is wel van de sim af te lezen, maar nu komt het.

Er zijn voor elk merk verschillende API's uitgebracht die je toegang geven tot deze features.
Je leest hem uit met System.getProperty("IMEI"); of System.getProperty("com.FABRIKANT.imei"); etc. etc.
Dit is slechts maar 1 vb. die ik zo tegengekomen ben naar anti-platform onafhankelijkheid.

Ook op verschillende java-games sites etc. worden verschillende spellen voor verschillende types mobile telefoons aangeboden.
Dus ook voor de 'goeroes' is het hiermee dus niet mogelijk om platform onafhankelijk te schrijven.

Heeft J2ME zo dan wel voldoende bestaansrecht of iemand ideeën of dit in de toekomst gefixed gaat worden?

Verder las ik gister in een SAP Netweaver boek dat zij bij SAP MI (Mobile Infrastructure) wel naar mobile onafhankelijkheid streven.
Binnenkort ga ik hier veel meer over leren maar mijn kennis hierin is nu nog nihil.
Iemand hier ervaring mee hoe dit ongeveer werkt?
Zo moeilijk is het niet om platform onafhankelijk te werken. Echter de schermgrote van een mobile telefoon varieert nogal en dus zul je resources in meerdere varianten moeten leveren. Dat vreet natuurlijk geheugen en aangezien lang niet alle telefoons onbeperkt geheugen hebben is het slimmer om verschillende varianten van je product te maken. Maar het hoeft niet.

In dit geval

code:
1
2
3
4
5
6
String IMEI = "N/A";
if (System.getProperty("phone.imei")!= null) 
IMEI =System.getProperty("phone.imei") 
else if (System.getProperty("com.siemens.imei")!= null) 
IMEI =System.getProperty("com.siemens..imei") 
else ....

[ Voor 8% gewijzigd door Verwijderd op 06-03-2006 20:17 ]


Verwijderd

bvp schreef op maandag 06 maart 2006 @ 19:37:
[...]


Ik geef hier alleen een vb. van een system-property. Natuurlijk in dit geval niet helemaal de juiste keuze maar wel het eerste wat me nu te binnen schoot.
Verder gaf ik juist daarom ook als voorbeeld aan dat verschillende j2me-games ook puur voor verschillende platforms ontwikkeld worden.
Het is dus niet zo van goh ik maak een j2me game en het werkt op nokia/samsung/siemens etc.
Dat bedoelde ik juist dat SUN hier dan toch meerdere steken heeft laten vallen???
Het is wel degelijk zo dat je een j2me game kan schrijven die op meerdere telefoons werkt. Zolang je je aan de standaard MIDP 2.0 features houdt is er echt niets aan de hand. Helaas is het uitlezen van het IMEI géén standaard feature.

  • kingmuze
  • Registratie: Februari 2003
  • Laatst online: 05-11-2025

kingmuze

so don't fear

Ik vind dat Sun certificaten moet uitdelen voor VM's die aan de standaard voldoen die door Sun is gespecificeerd. De basis van iedere VM is ongeveer gelijk. (afhankelijk van het profiel (Midp 1.0 of 2.0 en CLDC 1.0 of 1.1). Het grote probleem is dat VM's verschillend geimplementeerd zijn. Een goed voorbeeld hiervan is bijvoorbeeld de VM van Samsung (d500 even als voorbeeld). Deze heeft dezelfde Api als iedere andere telefoon. Toch is het moeilijk om mbv deze VM goede http connections op te zetten. Natuurlijk kan het wel werken, maar dan bouw je dus specifiek voor de d500 een app met hacks erin.

Kortom verschikkelijk manier van programmeren. De enige manier om te weten te komen of iets werkt is het testen op iedere telefoon die op het moment op de markt is.

[gvr]muze[nl] says: fear is the mind killer


Verwijderd

Bij J2ME ga je toch echt compiler directives missen. Was C++ toch niet zo slecht... :)
Pagina: 1