Page 2 of 3 FirstFirst 1 2 3 LastLast
Results 16 to 30 of 44

Thread: Scherm beveiliging uitschakelen met code ?

  1. #16
    Quote Originally Posted by Ronaldinho View Post
    En de 2de optie dmv Project -> Options -> Uses Permissions -> Wake Lock = true had ik al eens geprobeert maar ook dan valt het apje in slaap.
    --
    You Need:

    1) setting the Project Options, Uses Permissions, Wake lock = True

    2) Adding Android.JNI.PowerManager to the uses clause

    3) call:

    AcquireWakeLock; // at start up. ReleaseWakeLock; // at shutdown.

    from the Android.JNI.PowerManager Unit
    ---

    Als ik tijd heb kijk ik nog wel even naar de screen methode.

  2. #17
    Vraagje, wat is het verschil tussen "FLAG_KEEP_SCREEN_ON" en "Wak lock" ?

  3. #18
    Quote Originally Posted by MMSoft View Post
    Vraagje, wat is het verschil tussen "FLAG_KEEP_SCREEN_ON" en "Wak lock" ?
    Staat hier:
    https://developer.android.com/traini.../wakelock.html

    Keeping the Device Awake
    ...
    The approach you take depends on the needs of your app. However, a general rule of thumb is that you should use the most lightweight approach possible for your app, to minimize your app's impact on system resources. The following sections describe how to handle the cases where the device's default sleep behavior is incompatible with the requirements of your app.
    ..
    Keep the Screen On
    Certain apps need to keep the screen turned on, such as games or movie apps. The best way to do this is to use the FLAG_KEEP_SCREEN_ON in your activity (and only in an activity, never in a service or other app component).

    The advantage of this approach is that unlike wake locks (discussed in Keep the CPU On), it doesn't require special permission, and the platform correctly manages the user moving between applications, without your app needing to worry about releasing unused resources.

    Keep the CPU On
    Creating and holding wake locks can have a dramatic impact on the host device's battery life. Thus you should use wake locks only when strictly necessary and hold them for as short a time as possible.
    Daarom vindt ik het ook raar dat op SO zo snel naar Wakelocks verwezen wordt als je alleen kunt voldoen met een FLAG_KEEP_SCREEN_ON. (Ik heb reeds een verzoek gedaan om de duplicaat markering te verwijderen op SO)
    Last edited by rvk; 24-Oct-16 at 21:42.

  4. #19
    Dit werkt bij mij prima.
    (dus die regel onder Application.Initialize; zetten)

    Delphi Code:
    1. program Project3;
    2.  
    3. uses
    4.   System.StartUpCopy,
    5.   FMX.Forms,
    6.   Androidapi.Helpers,
    7.   Androidapi.JNI.GraphicsContentViewText,
    8.   Unit3 in 'Unit3.pas' {Form3};
    9.  
    10. {$R *.res}
    11.  
    12. begin
    13.   Application.Initialize;
    14.   SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON);
    15.   Application.CreateForm(TForm3, Form3);
    16.   Application.Run;
    17. end.

  5. #20
    Yesssss, voor elkaar. De het scherm blijft nu aan, helemaal geweldig. maar rijst meteen de vraag waar je nu de regel neerzet mbt clearflags om de anti-schermbeveiliging weer uit te zetten. Sluit nu het apje af dmv een button met oa "FreeAndNil(Application);" (is dit voldoende ?)

    En idd op Stack over flow revereren ze allemaal naar de wake lock methode(die ik ook niet werkend kreeg), ik reageerde op een vraag op stack overflow maar kreeg direct een opmerking dat ik daar niet op mocht reageren en zelf een vraag moest stellen. Tja ben blij dat op het oude vertrouwde NLdelphi het alsnog word opgelost. zal btw de oplossing morgen wel even op het Stack overflow zetten zodat andere mensen die op zoek zijn er misschien iets aan hebben.

  6. #21
    Quote Originally Posted by Ronaldinho View Post
    Sluit nu het apje af dmv een button met oa "FreeAndNil(Application);" (is dit voldoende ?)
    Volgens mij hoef je nooit een FreeAndNil(Application) te doen. Dit wordt toch automatisch gedaan bij afsluiten van je programma. En bij afsluiten is die FLAG_KEEP_SCREEN_ON ook niet meer actief.

    Overigens werkt die FLAG_KEEP_SCREEN_ON alleen zolang je applicatie ook daadwerkelijk focus heeft. Als je naar een ander programma schakelt (of je programma naar de achtergrond gaat) dan gaat het scherm weer uit na de time-out (dacht ik).

    zal btw de oplossing morgen wel even op het Stack overflow zetten zodat andere mensen die op zoek zijn er misschien iets aan hebben.
    Dat zal niet lukken (op je eigen vraag) want je vraag is als duplicaat gemarkeerd en er kan niet op geantwoord worden. Vandaar dat ik in het commentaar gevraagd heb om de duplicaat-markering weer weg te halen. (of je moet reageren op de vraag waar de duplicaat-markering naartoe verwijst want de vraag was inderdaad bijna identiek).

  7. #22
    Quote Originally Posted by Ronaldinho View Post
    Sluit nu het apje af dmv een button met oa "FreeAndNil(Application);" (is dit voldoende ?)
    Waarom roep je overigens freeandnil(application) om je app af te sluiten? Dat kan volgens mij nooit goed zijn. Hoewel ik niet zoveel ervaring heb met delphi i.c.m. Android... Maar is gewoon een Close; om je form te sluiten niet voldoende. Dan wordt volgens mij je app toch ook gewoon afgesloten?

    Tevens begrijp ik ook dat je nooit TObject.Free moet gebruiken maar TObject.DisposeOf als je voor Android een app maakt.
    Zie http://stackoverflow.com/questions/2...in-android-ios

  8. #23
    Quote Originally Posted by rvk View Post
    Dit werkt bij mij prima.
    (dus die regel onder Application.Initialize; zetten)

    Delphi Code:
    1. program Project3;
    2.  
    3. uses
    4.   System.StartUpCopy,
    5.   FMX.Forms,
    6.   Androidapi.Helpers,
    7.   Androidapi.JNI.GraphicsContentViewText,
    8.   Unit3 in 'Unit3.pas' {Form3};
    9.  
    10. {$R *.res}
    11.  
    12. begin
    13.   Application.Initialize;
    14.   SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON);
    15.   Application.CreateForm(TForm3, Form3);
    16.   Application.Run;
    17. end.
    Ik probeer dit (FLAG_KEEP_SCREEN_ON) ook werkend te krijgen maar ik krijg foutmeldingen.
    Als je een nieuw project begint, wat moet je dan precies doen om dit werkend te krijgen ?

    Wat mij ook op valt is Form3, ik ben al eens aan het zoeken geweest hoe ik nog een Form kon plaatsen in een firemonkey project maar heb dat niet gevonden, dus ben ik ook benieuwd hoe je dat doet.

  9. #24
    Quote Originally Posted by MMSoft View Post
    Ik probeer dit (FLAG_KEEP_SCREEN_ON) ook werkend te krijgen maar ik krijg foutmeldingen.
    Welke foutmelding?

    Wat mij ook op valt is Form3, ik ben al eens aan het zoeken geweest hoe ik nog een Form kon plaatsen in een firemonkey project maar heb dat niet gevonden, dus ben ik ook benieuwd hoe je dat doet.
    Nog niet geprobeerd. Ik ben nog niet serieus met Android bezig en heb Delphi 10.1 nét.

    (Gaat dat niet op dezelfde manier als vcl?)

  10. #25
    De eerste fout melding is al bij "System.StartUpCopy", deze wordt niet herkend.
    Ik gebruik XE8.

    En als ik dat weg laat, dan krijg ik dit:
    Click image for larger version. 

Name:	Screenshot_2016-10-26-18-42-13.jpg 
Views:	100 
Size:	78.1 KB 
ID:	7404

    Moet ik nog een of andere "Permission" aanzetten ?
    Last edited by MMSoft; 26-Oct-16 at 19:48.

  11. #26
    Quote Originally Posted by MMSoft View Post
    De eerste fout melding is al bij "System.StartUpCopy", deze wordt niet herkend.
    Ik gebruik XE8.
    En waarom had je die er dan bijgezet?
    Die is in ieder geval voor de addflag regel niet nodig.

    Verder weet ik ook niet of dit de juiste units zijn in XE8 want ik gebruik 10.1.

    O, ik zie het al. Je krijgt dezelfde melding als ik deze regel in de formcreate zet. Weet je zeker dat je die regel ook niet daar nog hebt staan? (Want je form wordt al wel getoond)

  12. #27
    ik gebruik nu alleen nog maar deze regels:
    Code:
     Application.Initialize;
     SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON);
     //Application.CreateForm(TForm3, Form3);
     Application.Run;
    En krijg nog steeds dezelfde melding.
    Last edited by MMSoft; 26-Oct-16 at 20:21.

  13. #28
    Krijg je deze melding als je de debugger aan hebt staan? (dus als je de app draait in de IDE, en dan op de telefoon uitvoert).

    Als dat zo is kan het n.l. zo zijn dat de debugger zorgt voor uitvoer in een andere thread.

    Probeer dit dus als applicatie direct op de telefoon op te starten zonder via de IDE te gaan.

  14. #29
    Dit is als ik de App op de GSM test.

  15. #30
    Quote Originally Posted by MMSoft View Post
    Code:
     //Application.CreateForm(TForm3, Form3);
    En krijg nog steeds dezelfde melding.
    Dit gaat sowieso niet werken want dan zal je applicatie gelijk weer afsluiten.
    Als dat niet zo is dan heb je toch niet goed gecompileerd of de apk geïnstalleerd want als je geen CreateForm doet (of dynamisch een form maakt) zal de Application.Run gelijk weer afsluiten.

Page 2 of 3 FirstFirst 1 2 3 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •