Diskuze: Lamw: Lazarus Android Module Wizard
Zobrazeno 2 zpráv z 2.
Pěkný večer milí vývojáři,
Hlásím se opět po delším čase, obohacen o nové zkušenosti při práci s
projektem LAMW. Stále častěji narážím na nesnáz danou tím, že Android
opatruje velmi intenzivně uživatelovu baterii. To má bohužel neblahý dopad
na všechny vývojáře, kteří z rozmanitých příčin potřebují, aby
jejich programový kód vykonával činnost, která má být realizována v
okamžiku, kdy je zařízení bočním vypínačem uspáno. Displej z hasne. A
právě v okamžiku zhasnutí displeje se dějí věci. Začnou odpočítávat
časovače. Platí, že pokud v okamžiku stisku bočního tlačítka na
přístroji je okno aktivní aplikace v popředí, Android jeho proces nechává
jakž takž v klidu. Ale běda, pokud před stisknutím tlačítka na
přístroji aplikaci opustíte. Na pozadí pracuje, ale Vy třeba spustíte
launcher a objeví se plocha. A právě s tímto mám zejména v Pascalu
nesnáze. A tak přemýšlím, jak docílit toho, aby bylo možné nechat
aplikaci pracovat na pozadí bez aktivního síťového adaptéru a se
zhasnutým displejem. A to i v situaci, kdy zařízení v klidu leží na stole
a senzory pro detekci pohybu nepracují.
Kdy se problém projeví nejbouřlivěji je situace, kdy Pascal využívá C++
nativní kód .so knihovny, která je používána díky skvělé programové
jednotce Cthreads. Dávám proto přímý odkaz na .zip archiv s projektem
jehož předností je to, že autor přehrávače umístil v .zip archivu
podepsaný .apk balíček v nedebug ale v release formě.
https://github.com/…reamPlayback
Kdo z Vás by byl ochoten přemýšlet, na které místo programového kódu
tohoto malého přehrávače by bylo zapotřebí vložit určité řádky
programového kódu, které by zabránily tomu, aby po stisku jednoho ze dvou
tlačítek pro přehrávání živého vysílání nedošlo k automatickému
umlčení přehrávání vysílání v okamžiku, kdy zhasne buď automaticky
nebo po uživatelově zásahu displej. A USB kabel s EL proudem není připojen
k mini USB konektoru. Zařízení leží déle než 1 hodinu v klidu.
A Lamwstreamplayback je v pozadí TJ: Přehrávač hraje, ale před stiskem
vypínače je aktivní třeba právě libovolný launcher.
Co s tím? Pomohl by nějaký nekonečný cyklus na bázi Loop příkazu na
vhodném místě?
Ale kam takový řádek vložit? Přímo do programové jednotky bass.pas?
Přímo do unit1.pas?
Nebo to chce přidat potřebný Java kód, jenž aktivuje Wakelock, aby nebylo
jen přítomno oprávnění pro jeho používání v androidmanifest.xml, ale
aby byl wakelock doopravdy využíván?
Nebo je problém zapříčiněn faktem, že výsledná aplikace kombinuje Java
kód s C++ kódem a proto se k takovémuto kódu Dalwik nebo jiné části
Androidu takto chovají?
Jak zajistit, aby případná modifikace byla kompatibilní s Androidem 4.1 až
po verzi 9?
Budu se těšit na případné návrhy.
Zobrazeno 2 zpráv z 2.