Jak zabránit obrazovce, aby zhasla?

Sunday 11.12.2011 23:52:56, Jakuje

Kategorie: webOS

Ano. Přidal jsem do webTea možnost, zabránit obrazovce zhasnout, během odpočtu. Když si dělám čaj, telefon leží na Touchstone, tak proč nechávat display zhasínat :) Mimochodem na toto téma také přišlo review k aplikaci a tak jsem to zkusil. Dnes jsem již funkční aplikaci poslal HPčku.

Tak k tématu: Když zapnu odpočítávání, chci aby telefon nešel po uživatelem nastaveném čase do stavu spánku a aby nevypnul display. První co jsem v dokumentaci našel byla služba com.palm.power/com/palm/power/, umožňující prodloužit dobu, za kterou telefon usne (použití je zdokumentováno rozumě v dokumentaci). Ovšem samotné to nefungovalo a tak jsem musel hledat dále.

Až opět v diskuzi (asi jsem do vyhledávání nezadával správná klíčová slova) narazil na klíčové slovo "blockScreenTimeout" a pomocí něj jsem se dopídil až k funkci setWindowProperties, která umožňuje nastavit právě tento atribut aktuální "Stage". Opět ještě odkaz do dokumentace.

Kupodivu, kód zkompletovaný dle dokumentace funguje, pro zajímavost, zde je funkce, které zablokuje zhasnutí displeje:

Zdrojový kód:
MainAssistant.prototype.blockScreenTimeout = function(){
this.controller.serviceRequest("palm://com.palm.power/com/palm/power", {
method: "activityStart",
parameters: {
id: "com.dta3team.webTea.activity-1",
duration_ms: this.timerFull*1000 // promenna obsahujici pocet sekund odpoctu
},
});

ctrl = Mojo.Controller.getAppController().getStageController(MAIN_STAGE);
ctrl.setWindowProperties( { blockScreenTimeout:true } )
}

Podobně vypadá kód pro ukončení tohoto stavu a pro návrat k "normálnímu" chování:

Zdrojový kód:
MainAssistant.prototype.unblockScreenTimeout = function(){
this.controller.serviceRequest("palm://com.palm.power/com/palm/power", {
method: "activityEnd",
parameters: {
id: "com.dta3team.webTea.activity-1"
},
});
ctrl = Mojo.Controller.getAppController().getStageController(MAIN_STAGE);
ctrl.setWindowProperties( { blockScreenTimeout:false } )
}

Diskuse:

:
:
:

 
    

Podbarvená pole označená hvězdičkou jsou povinná!