Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

JavaME - kako postici da se backlight ne gasi

[es] :: Java :: JavaME - kako postici da se backlight ne gasi

[ Pregleda: 2150 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ljube
Ljubiša Knežević
Banjaluka

Član broj: 22429
Poruke: 158
92.241.141.*



+2 Profil

icon JavaME - kako postici da se backlight ne gasi07.09.2009. u 07:54 - pre 177 meseci
Radim na javame igrici i naravno potrebno je postaviti da telefon ne gasi backlight ili ukljucuje neki screensaver ukoliko igrac neko vrijeme ne pritisne taster.

Našao sam primjer za nokiju:
DeviceControl.setLights(0, 100);

Mozda i za Samsung: LCDLight.on(10000);

Siemens izlgeda ima neko svoje rjesenje.

Narvno treba ubaciti i odgovarajuce importe:
import com.nokia.mid.ui.DeviceControl;
import com.samsung.util.LCDLight;
import com.siemens.mp.game.Light;

Da li griješim ili ovo znači da treba praviti različite verzije jar fajlova za različite proizvođače mob telefona samo da bih mogao da kontrolišem backlight?

Ako ne, kako mogu postići da program ne prestane sa radom kada pokusa da napravi import Nokia biblioteka na Samsungu?




 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
91.148.93.*

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: JavaME - kako postici da se backlight ne gasi09.09.2009. u 09:36 - pre 177 meseci
Iskoristi fasada patern, pa za svaki model napravi posebnu klasu koja implementira neki interface kojim mozes da kontrolises to. Pa onda u zavisnosti koji model telefona se koristi samo napravi instancu te klase preko neke factory klase.


 
Odgovor na temu

ljube
Ljubiša Knežević
Banjaluka

Član broj: 22429
Poruke: 158
*.broadband.blic.net.



+2 Profil

icon Re: JavaME - kako postici da se backlight ne gasi09.09.2009. u 10:31 - pre 177 meseci
Hvala na odgovoru.
Moram da priznam da sam zaboravio primjenu fasada paterna. Da li bi to znacilo instanciranje klase preko instanceof("imeklase")?


 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
93.86.199.*

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: JavaME - kako postici da se backlight ne gasi09.09.2009. u 13:48 - pre 177 meseci

Code:

public interface MobileSpecific {
  public void turnBackLight();
}


class NokiaSpecific implements MobileSpecific {
   public void turnBackLight() {
    // pa ubacis sve sto za nokiju treba da uradis
  }
}

class SamsungSpecific implements MobileSpecific {
   public void turnBackLight() {
    // pa ubacis sve sto za samsung treba da uradis
  }
}


class MobileSpecificFactory {

  public MobileSpecific createMobileSpecific() {
   // ovde napravis detekciju mobilnog telefona kako znas i umes i vratis neku instancu
   return null;
  }
}


Naravno svaka klasa ide u poseban fajl na ovaj nacin za svaki telefon specificne klase odvojis, i tamo napravis importe i radis normalno, sto ce reci drugi telefoni nece ni dodirnuti klase koje su za druge specificne telefone. Pa classloader nece da pukne da kuka kako ne moze da nadje druge klase.


 
Odgovor na temu

ljube
Ljubiša Knežević
Banjaluka

Član broj: 22429
Poruke: 158
81.93.74.*



+2 Profil

icon Re: JavaME - kako postici da se backlight ne gasi09.09.2009. u 18:34 - pre 177 meseci
Hvala na pomoci!

Mislim da cu znati da identifikujem proizvodjaca po jednom od imei propertia.




 
Odgovor na temu

zigizig

Član broj: 42968
Poruke: 167
82.117.198.*



+10 Profil

icon Re: JavaME - kako postici da se backlight ne gasi10.09.2009. u 10:34 - pre 177 meseci
Ako ne zelis da pravis posebnu verziju za svaki telefon mozes sve staviti u jedan fajl.
Ali ce on onda biti veci nego sto treba jer moras da spakujes sve potrebne klase za svaki telefon
(com.samsung.util.LCDLight, com.nokia.mid.ui.DeviceControl, com.vodafone.v10.system.device.DeviceControl...)
plus napravis logiku za prepoznavanje telefona

Sto se tice konkretnog problema, koliko mi je poznato, ne postoji univerzalno resenje koje radi na svim telefonima.
Mozes da probas da u odredjenim intervalima pozoves
Display.flashBacklight(1)
ali ne postoji garancija da ce raditi na svim telefonima jer ako telefon nema podrsku za kontrolu 'backlight' vratice 'false'.
 
Odgovor na temu

ljube
Ljubiša Knežević
Banjaluka

Član broj: 22429
Poruke: 158
*.broadband.blic.net.



+2 Profil

icon Re: JavaME - kako postici da se backlight ne gasi11.09.2009. u 17:25 - pre 177 meseci
Zaista kada uključim jar od Nokije dok je izabaran SDK3.0 emulator, jar igrice se poveća sa 40k na 1300k.
Ako bih dodao jar i od drugih proizvođača, jar bi vjerovatno bio 3-4 MB.


Testirao sam i ako isti program kompajiram samo sa Nokijinim emulatorom, program ostaje na 40k.

Ovo je logično obzirom da se podrazumjeva da telefon ima ove biblioteke i da ih ne treba pakovati u jar.

Problem sam rješio tako sto šam napravio mobile class library sa podrškom za Nokia telefon i u njemu implementirao metode iz interfejsa MobileSpecific (VendorSpecificNokia.jar).

Zatim sam taj jar dodao u projekat igrice koji je podešen na default SDK3.0 emulator i izgleda da nema problema.
Konačni jar fajl je sada 63k. A program moze da prepozna Nokia telefon i da instancira klasu iz VendorSpecificNokia.jar

Moram slično da uradim i za ostale proizvođače telefona ali izgleda da ovo zadovoljava i veličinom i funkcionalnošću.

Hvala svima na pomoći.

Poz.
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
91.148.87.*

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: JavaME - kako postici da se backlight ne gasi11.09.2009. u 20:50 - pre 177 meseci
Ajd i ja da pitam nesto :)

Zar ne bi trebali te biblioteke specificne za nokine ili samsungove telefone da budu instalirane kao i deo na tom telefonu, malo mi je nelogicno da svako ko napravi j2me aplikaciju mora sa njom da isporuci "glomazni" jar koji je specifican za taj telefon. To sto meni pricate izgleda kao da uz svaku java aplikaciju moras da prosledis i sve klase koje dolaze uz normalan jre.


 
Odgovor na temu

ljube
Ljubiša Knežević
Banjaluka

Član broj: 22429
Poruke: 158
*.broadband.blic.net.



+2 Profil

icon Re: JavaME - kako postici da se backlight ne gasi12.09.2009. u 06:56 - pre 177 meseci
Koliko sam ja shvatio, ako u Netbans-u izaberem Samsungov SDK i koristim samo Samsung pozive za backlight, program bude oko 40k.
Ako pokusam da dodadam opciju i za Nokijin Backlight, onda moram da izaberem neki Jar fajl u direktoriju iz Nokija SDK i automatski moj program se poveca za 1MB.

U ovom slucaju, razvojni alat "zna" da se radi program za Samsung telefone i nemora da ubacuje sve iz Samsung jar-a i zato je program oko 40k, ali ako dodam u taj isti program i poziv za Nokia backlight, razvojni alat opet "zna" da to nema na Samsungu i onda ubaci sve iz tog Nokija jar-a sto mu treba.

Problem sam rjesio tako sto sam napravio mobile class library i izabrao Nokia sdk i u tom programu napravio rad sa backlight.
Kada sam taj jar dodao u program koji radi sa Samsung SDK, program se povecao samo za 30k a to mi se cini prihvatljivo.

Narvno, postoji opcija da ja nesto pogresno radim i da vjerovatno ima bolji nacin ali...

Meni se ne dopadaju one preprocesorske direktive, jer opet moras da pravis poseban jar za svakog proizvodjaca.

Ovo jos nisam sve istestirao - moram da pohvatam prijatelje sa Nokijom i Samsungom i da ih ubjedim da mi dozvole da instaliram neki program na njihov telefon :)


 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
91.148.87.*

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: JavaME - kako postici da se backlight ne gasi13.09.2009. u 09:28 - pre 177 meseci
Ahh, mislim da te biblioteke koje ti netbeans dodaje unutra postoje na samom telefonu, generalno za deploy mislim da te biblioteke ne bi trebalo da da budu spakovane u tvoj jar file, jer se te klase vec nalaze na samom telefonu.
 
Odgovor na temu

ljube
Ljubiša Knežević
Banjaluka

Član broj: 22429
Poruke: 158
*.broadband.blic.net.



+2 Profil

icon Re: JavaME - kako postici da se backlight ne gasi13.09.2009. u 11:32 - pre 177 meseci
Malo razočaravajuća informacija koju sam našao na stranim forumima koji se bave tematikom javeme razvoja je da neki uređaji imaju class loader koji odmah provjerava da li može učitati klasu i ako ne nađe program naravno puca.

Developeri se zalažu da to tako ne radi ali na određenom broju telefona postoji ovaj problem i ne preporučuje se ubacivanje klasa za ostale telefone bez obzira što nikada neće biti pozvane.

JRE na ovim telefonima ne radi onako kao na PC i ovdje definitovno važe druga pravila.

Rješenje je upotreba preprocesora i ubacivanje koda samo za određenje telefone i naravno više jarova ali šta je tu je ...

 
Odgovor na temu

zigizig

Član broj: 42968
Poruke: 167
82.117.198.*



+10 Profil

icon Re: JavaME - kako postici da se backlight ne gasi14.09.2009. u 10:03 - pre 177 meseci
Upravo tako.
Tuzno je sto i sa javom moraju da se prave posebni build-ovi za svaki telefon, ali bar je problem relativno trivijalan.
 
Odgovor na temu

[es] :: Java :: JavaME - kako postici da se backlight ne gasi

[ Pregleda: 2150 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.