Page 2 of 4 FirstFirst 1 2 3 4 LastLast
Results 16 to 30 of 48

Thread: (Android, FMX) Bellen op de Achtergrond

  1. #16
    Getest: Als het Alarm gaat tijdens het Bellen dan komt er een klein scherm boven op het Bel scherm.

  2. #17

  3. #18
    Het werkt (bijna goed):
    Code:
    //https://stackoverflow.com/questions/56102206/after-bringing-my-app-to-front-showmessage-throws-exception-can-not-perform-th
    //Uses: FMX.Platform.Android;
    procedure TForm1.BringAppToFront;
    var
     Intent: JIntent;
    begin
     Intent := TJIntent.Create;
     Intent.setClassName(MainActivity.getPackageName, MainActivity.getClass.getName);
     Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
     Intent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER);
     Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); //Oud: FLAG_ACTIVITY_REORDER_TO_FRONT);
     TAndroidHelper.Activity.getBaseContext.startActivity(Intent);
    end;
    In plaats van: FLAG_ACTIVITY_REORDER_TO_FRONT gebruik ik: FLAG_ACTIVITY_NEW_TASK

    De 1e keer werkt het altijd, maar soms werkt het de 2e keer niet, waarschijnlijk blijft er nog iets in het geheugen staan.

  4. #19
    Werkt de ene keer wel en de andere keer niet zal denk ik niemand je zo mee kunnen helpen.

    Enige wat ik je kan adviseren is je programma laten lopen met usb debugging aan en dan via een kabeltje de logcat bekijken. Je kunt dat met adb logcat doen maar ook bv met een programma als https://github.com/DelphiWorlds/DeviceLens (die dan gelijk alleen de lig van hoe programma kan laten zien).

    Op die manier die je vaak exceptions en foutmeldingen die normaal voor de gebruiker verborgen blijven (en waardoor dan lijkt dat er niets gebeurd).

    Of je laat je programma direct in de ide lopen met debugging. Maar ik heb geen idee hoeveel info je dan ziet (ik werk niet met de Android/fmx/Delphi combo).

  5. #20
    Misschien dat het de tweede keer niet werkt omdat je dan al een task hebt lopen van de eerste keer:

    Van https://developer.android.com/refere...IVITY_NEW_TASK
    When using this flag, if a task is already running for the activity you are now starting, then a new activity will not be started; instead, the current task will simply be brought to the front of the screen with the state it was last in. See FLAG_ACTIVITY_MULTIPLE_TASK for a flag to disable this behavior.
    1+1=b

  6. #21
    Ik heb "FLAG_ACTIVITY_MULTIPLE_TASK" toegevoegd maar dit geeft geen verschil.
    Code:
    procedure TForm1.BringAppToFront;
    var
     Intent: JIntent;
    begin
     Intent := TJIntent.Create;
     Intent.setClassName(MainActivity.getPackageName, MainActivity.getClass.getName);
     Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
     Intent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER);
     Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_MULTIPLE_TASK); //Deze regel toegevoegd
     Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
     TAndroidHelper.Activity.getBaseContext.startActivity(Intent);
    end;
    Nu vraag ik mij af of ik dit zo wel goed heb gedaan, wat denken jullie ?

  7. #22
    ...met een programma als https://github.com/DelphiWorlds/DeviceLens (die dan gelijk alleen de lig van hoe programma kan laten zien).
    Ik probeer al een tijdje dit programma (v1.3.0) aan de gang te krijgen, maar kan daarin de SDK's niet downloaden/Installeren.
    Ook heb ik geprobeerd om de link naar de SDK's te verwijzen naar de SDK's die Delphi gebruikt, maar het is zo'n uitgebreide mappen structuur op de Harddisk dat ik de juiste map nog niet gevonden heb.
    Welke extensies hebben deze SDK's ? Zodat ik kan zoeken waar deze staan ?

    Ik heb het probleem gemeld:
    https://github.com/DelphiWorlds/DeviceLens/issues

    Maar nu krijg ik de vraag of ik JDK's heb geinstalleerd, helaas weet ik hier te weinig van om hier een goed antwoord op te geven.
    Ik heb Delphi 10.4.2 Community Edition geinstalleerd en deze installeerd alles wat deze nodig heeft, zitten daar ook JDK's bij ?

    Waarvoor zijn deze SDK's en JDK's precies ?
    Last edited by MMSoft; 02-Sep-22 at 10:15.

  8. #23
    Device Lens werkt nu, en dit zijn de processen die draaien als mijn App actief is.

    Click image for larger version. 

Name:	Processes_1.jpg 
Views:	43 
Size:	73.2 KB 
ID:	8255
    Name:  Processes_2.jpg
Views: 88
Size:  55.2 KB

    Het valt mij op dat er ook processen bij staan van een paar eigengemaakte App's die niet actief zijn op dit moment:
    com.embarcadero.Huis_Via_Internet
    com.embarcadero.Route_Editor
    com.embarcadero.Service_Test

    Dit is de App waar ik nu mee bezig ben:
    com.embarcadero.SOS

    Tijdens het bellen is com.android.bluetooth even actief, en deze verdwijnt daarna weer.

    Maar hoe nu verder om het probleem te vinden ?

  9. #24
    Dubbelklik het gewenste proces en hou de log in de gaten wanneer je je probleem reproduceert en let op de meldingen. Het ging alleen om de logcat die je met adb logcat ook kon vinden. Adb logcat heeft ook filteropties.

    Device Lens lists the connected devices in the list on the top left. Selecting a device will show what processes are running on the device. Double clicking a process name will start the log display and filter on that process.

  10. #25
    De naam van de App is "SOS", als ik dan naar dit Proces kijk: com.embarcadero.SOS
    Krijg ik deze "Error" meldingen:

    App opstarten:
    05-09 10:06:57.000 E com.embarcadero.SOS 11178 11178 USNET USNET: appName: com.embarcadero.SOS
    05-09 10:06:57.000 E com.embarcadero.SOS 11178 11225 QT [QT]file does not exist
    05-09 10:06:57.000 E com.embarcadero.SOS 11178 11225 OpenGLRenderer Device claims wide gamut support, cannot find matching config, error = EGL_SUCCESS
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 Looper Invalid attempt to set NULL callback but not allowed for this looper.
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 Looper Invalid attempt to set NULL callback but not allowed for this looper.
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 Looper Invalid attempt to set NULL callback but not allowed for this looper.
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 Looper Invalid attempt to set NULL callback but not allowed for this looper.
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 Looper Invalid attempt to set NULL callback but not allowed for this looper.
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 Looper Invalid attempt to set NULL callback but not allowed for this looper.
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 Looper Invalid attempt to set NULL callback but not allowed for this looper.
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 Looper Invalid attempt to set NULL callback but not allowed for this looper.
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 Looper Invalid attempt to set NULL callback but not allowed for this looper.
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 Looper Invalid attempt to set NULL callback but not allowed for this looper.
    05-09 10:06:58.000 E com.embarcadero.SOS 11178 11178 ion ioctl c0044901 failed with code -1: Invalid argument

    Na de 1e keer bellen (vanaf nu werkt het niet meer, dus waarschijnlijk gaat het hier mis):
    05-09 10:07:06.000 E com.embarcadero.SOS 11178 11178 BufferQueueProducer [SurfaceView - com.embarcadero.SOS/com.embarcadero.firemonkey.FMXNativeActivity@2eb9a 1c@1#2(BLAST Consumer)2](id:2baa00000003,api:0,p:-1,c:11178) disconnect: not connected (req=1)

    Zoek ik zo goed, en hoe nu verder ?

  11. #26
    Quote Originally Posted by MMSoft View Post
    Zoek ik zo goed,
    Ja.

    Quote Originally Posted by MMSoft View Post
    en hoe nu verder ?
    Geen idee.

    Quote Originally Posted by MMSoft View Post
    Na de 1e keer bellen (vanaf nu werkt het niet meer, dus waarschijnlijk gaat het hier mis):
    05-09 10:07:06.000 E com.embarcadero.SOS 11178 11178 BufferQueueProducer [SurfaceView - com.embarcadero.SOS/com.embarcadero.firemonkey.FMXNativeActivity@2eb9a 1c@1#2(BLAST Consumer)2](id:2baa00000003,api:0,p:-1,c:11178) disconnect: not connected (req=1)
    Als je zelf al zegt waarschijnlijk dan heb je dus al een idee.
    (als je geen idee hebt is het niet handig alleen dat deel te geven)

    SurfaceView lijkt mij iets met het scherm te maken hebben.
    Is je scherm alweer getoond?
    Misschien ook handig om naast de log ook een compleet probleem omschrijving te geven.
    Wanneer gebeurd wat met welke regels in de log (zoals "is je scherm al naar voren gekomen" e.d.)

  12. #27
    Deze melding verschijnt op het moment de de App weer op de voorgrond komt.

    Dit is de code die ik daarvoor gebruik:
    Code:
    procedure TForm1.BringAppToFront;
    var
     Intent: JIntent;
    begin
     Intent := TJIntent.Create;
     Intent.setClassName(MainActivity.getPackageName, MainActivity.getClass.getName);
     Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
     Intent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER);
     Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); 
     TAndroidHelper.Activity.getBaseContext.startActivity(Intent);
    end;
    Test 1: (Geen verschil)
    De variable "Intent" niet in deze procedure initaliseren, maar in het begin van de App.

    Test 2: (Geen verschil)
    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     Intent := TJIntent.Create;
    end;
    
    procedure TForm1.BringAppToFront;
    //var
    // Intent: JIntent;
    begin
     //Intent := TJIntent.Create;
     Intent.setClassName(MainActivity.getPackageName, MainActivity.getClass.getName);
     Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
     Intent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER);
     Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); 
     TAndroidHelper.Activity.getBaseContext.startActivity(Intent);
    end;
    Test 3: (Geen verschil)
    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     Intent := TJIntent.Create;
     Intent.setClassName(MainActivity.getPackageName, MainActivity.getClass.getName);
     Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
     Intent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER);
     Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); 
    end;
    
    procedure TForm1.BringAppToFront;
    //var
    // Intent: JIntent;
    begin
     //Intent := TJIntent.Create;
     //Intent.setClassName(MainActivity.getPackageName, MainActivity.getClass.getName);
     //Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
     //Intent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER);
     //Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); //Oud: FLAG_ACTIVITY_REORDER_TO_FRONT);
     TAndroidHelper.Activity.getBaseContext.startActivity(Intent);
    end;

  13. #28
    Omdat je een melding krijgt over SurfaceView zou het kunnen zijn dat je te snel naar je scherm probeert te schrijven.
    Je zou dus na de intent een delay in kunnen bouwen of er eerst voor zorgen dat je zeker weet dat het scherm zichtbaar is voordat je er iets op zet.

    En nee, ik heb geen idee hoe je een delay goed doet in FMX/Android.

  14. #29
    Omdat je een melding krijgt over SurfaceView zou het kunnen zijn dat je te snel naar je scherm probeert te schrijven.
    Je zou dus na de intent een delay in kunnen bouwen of er eerst voor zorgen dat je zeker weet dat het scherm zichtbaar is voordat je er iets op zet.
    Een wachttijd van 1 Sec. geprobeerd met een Sleep functie, en ook een wachttijd met een Thread, maar helaas er veranderd niets.
    Code:
    procedure TForm1.BringAppToFront;
    var
     Intent: JIntent;
    begin
     Intent := TJIntent.Create;
     Intent.setClassName(MainActivity.getPackageName, MainActivity.getClass.getName);
     Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
     Intent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER);
     Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); 
     TAndroidHelper.Activity.getBaseContext.startActivity(Intent);
    
     //Sleep(1000);  //1 Sec. wachten
     Createthreads;  //1 Sec. wachten
    end;

  15. #30
    En komt die melding dan ook een seconde later?
    (Maak er anders 5 seconden van als het niet duidelijk is)

    Anders weet ik het ook niet meer.

Page 2 of 4 FirstFirst 1 2 3 4 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
  •