Page 3 of 4 FirstFirst 1 2 3 4 LastLast
Results 31 to 45 of 47

Thread: (Android, FMX) Bellen op de Achtergrond

  1. #31
    Ik heb de tijd langer gezet.
    Na 4 Sec. wordt de procedure "BringAppToFront" gestart;

    Code:
    procedure TForm1.BringAppToFront;
    var
     Intent: JIntent;
    begin
     //Project > Options > Uses Permissions: Foreground Service: Aan 
     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(10000); //10 Sec.
    end;

    Als de App opstart:
    06-09 08:21:16.000 E com.embarcadero.Tel_Test 32549 32549 USNET USNET: appName: com.embarcadero.Tel_Test
    06-09 08:21:16.000 E com.embarcadero.Tel_Test 32549 32575 QT [QT]file does not exist
    06-09 08:21:16.000 E com.embarcadero.Tel_Test 32549 32575 OpenGLRenderer Device claims wide gamut support, cannot find matching config, error = EGL_SUCCESS
    06-09 08:21:17.000 E com.embarcadero.Tel_Test 32549 32549 ion ioctl c0044901 failed with code -1: Invalid argument


    Na 4 Sec. komt de App weer op de voorgrond:
    -


    Na 10 Sec.
    06-09 08:21:35.000 E com.embarcadero.Tel_Test 32549 32549 BufferQueueProducer [SurfaceView - com.embarcadero.Tel_Test/com.embarcadero.firemonkey.FMXNativeActivity@20be2 a2@1#2(BLAST Consumer)2](id:7f2500000003,api:0,p:-1,c:32549) disconnect: not connected (req=1)


    Opmerking:
    Het valt mij op dat net na het installeren van de App het naar de voorgrond brengen (bijna) nooit werkt, pas als ik de App afgesloten heb en weer opgestart heb
    werkt het (meestal), maar dan dus 1 keer en daarna pas weer als de App opnieuw opgestart is.

  2. #32
    Wat doe je (in een event) als de app naar de voorgrond komt?
    Misschien gaat daar iets mis.

    Probeer eens een compleet kale app te maken zonder iets op het scherm te zetten en dan te kijken of alleen puur de activity werkt.
    (Dat kan dan ook als testapp gelden voor degene die het hier uit willen testen en met meer code valt er misschien ook nog wat anders op)

  3. #33
    Wat doe je (in een event) als de app naar de voorgrond komt?
    Niets

    Probeer eens een compleet kale app te maken zonder iets op het scherm te zetten en dan te kijken of alleen puur de activity werkt.
    Er wordt alleen een button weergeven op het Form, deze maak ik nu meteen onzichtbaar als je daar op drukt en het telefoon nummer
    gedraaid wordt. Als de App weer op de voorgrond treedt, dan is het Form dus leeg nu. Helaas krijg ik de fout melding nog steeds na 10 sec.

    FormCreate en FormActivate, worden alleen uitgevoerd als de App opstart, niet als de App weer op de voorgrond komt.

    (Dat kan dan ook als testapp gelden voor degene die het hier uit willen testen en met meer code valt er misschien ook nog wat anders op)
    Ik wil de App posten, maar vindt niet hoe ik dit hier kan doen.


    Edit:
    Bestand toegevoegd
    Attached Files Attached Files
    Last edited by MMSoft; 06-Sep-22 at 20:31.

  4. #34
    Quote Originally Posted by MMSoft View Post
    Ik wil de App posten, maar vindt niet hoe ik dit hier kan doen.
    Onder de editor "Ga Advanced"
    Dan onderin "Beheer bijlage"
    "Add files", kiezen en Upload

    Hij hangt dan automatisch aan de post.

  5. #35
    Met Android 9 werkt het goed, maar met Android 12 helaas niet.
    Wat kan het probleem zijn, en wat zou ik nog kunnen proberen ?

  6. #36
    Wat kan het probleem zijn,
    Wellicht aangescherpte beveiliging tegen misbruik door apps die zichzelf onverwacht op de voorgrond dringen of je telefoongesprekken overnemen.
    1+1=b

  7. #37
    Android 12 zal vast en zeker weer verder beveiligd zijn, dus om die rede begrijp ik waarom het op Android 9 wel werkt.

    Android 12:
    Het vreemde is dat het niet werkt als de App net geinstalleerd is, maar pas nadat je de App hebt gestopt (en weer gestart).
    Dan werkt het 1x, daarna niet meer (dus de 2e, 3e, 4e etc keer niet meer).
    Pas als je de App weer gestopt (en weer gestart) heb, werkt het weer 1x.

    Er gebeurd dus iets met het stoppen van de App waardoor het daarna 1x kan werken, maar wat ?

  8. #38
    Ik heb je aan eens gezegd dat je met adb logcat moet kijken.
    Volgens mij filter je met devicelens alleen je eigen proces eruit maar de exception kan ook door een ander proces gegeven worden (zoals applicationmanager o.i.d.). Of je moet dit ook in devicelens kunnen zien maar die ken ik niet.

  9. #39
    Rik en ik hebben op de achtergrond gezocht naar het probleem, en Rik heeft de oplossing gevonden.
    De Uses Permissions "SYSTEM_ALERT_WINDOW" moet aan staan, en je moet de App ook nog toestemming geven daarvoor.
    Nu werkt het goed.

    Heel erg bedankt Rik !!!


    Ik ben aan het zoeken hoe ik toestemming kan geven als de App opstart, maar vindt dit nog niet.
    Wie kan hier iets over vertellen ?
    Last edited by MMSoft; 16-Sep-22 at 15:20.

  10. #40
    Ik deel het probleem op in 3 delen:
    (1) Als de Android versie 12 of hoger is,
    (2) en de Machtiging "SYSTEM_ALERT_WINDOW" / "Bovenop Weergeven" is niet gegeven,
    (3) dan het Instel Scherm "Bovenop Weergeven" Tonen zodat de Gebruiker de Toestemming kan geven

    De 1e en 3e heb ik werkend, maar nu de 2e nog.
    Hoe kan ik met Code afvragen of deze Toestemming is gegeven ?

    Click image for larger version. 

Name:	Instellingen Bovenop Weergeven.jpg 
Views:	19 
Size:	79.9 KB 
ID:	8262

  11. #41
    Ik ben een stukje verder en kan nu het App Info/Instellingen scherm weergeven.

    Click image for larger version. 

Name:	App Info-Instellingen 1.jpg 
Views:	11 
Size:	72.0 KB 
ID:	8263

    Op deze manier kan ik afvragen of er toestemming is om de Bestanden te benaderen (lijkt jullie dit de juiste manier?):
    Code:
    if PermissionsService.IsPermissionGranted(JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE)) then ...
    Click image for larger version. 

Name:	App Info-Instellingen 2.jpg 
Views:	10 
Size:	69.2 KB 
ID:	8264

    Maar helaas geeft dit altijd False, ook als de Toestemming voor "Bovenop Weergeven" Aan staat:
    Code:
    if PermissionsService.IsPermissionGranted(JStringToString(TJManifest_permission.JavaClass.SYSTEM_ALERT_WINDOW)) then ...
    Waarom werkt het afvragen van "READ_EXTERNAL_STORAGE" wel, en het afvragen van "SYSTEM_ALERT_WINDOW" niet ?

  12. #42
    Quote Originally Posted by MMSoft View Post
    Waarom werkt het afvragen van "READ_EXTERNAL_STORAGE" wel, en het afvragen van "SYSTEM_ALERT_WINDOW" niet ?
    Welke code had je gebruikt om die rechten te vragen? (ik bedoel dus van die laatste, niet die external storage)

    Zover ik weet was dat niet SYSTEM_ALERT_WINDOW zelf (maar iets anders).
    En dan heeft het vragen of je rechten hebt op SYSTEM_ALERT_WINDOW natuurlijk ook geen zin.
    Last edited by rvk; 20-Sep-22 at 12:45.

  13. #43
    Deze had ik aangevinkt om het te laten werken samen met de App instelling op de Telefoon: "Bovenop Weergeven" die Aan moet staan.

    Name:  Uses Permissions.jpg
Views: 19
Size:  11.4 KB

  14. #44
    Quote Originally Posted by MMSoft View Post
    Deze had ik aangevinkt om het te laten werken samen met de App instelling op de Telefoon: "Bovenop Weergeven" die Aan moet staan.
    DAAR vraag ik dus naar. Wat voer je uit om die instelling naar voren te halen?
    Je wilt toch weten of dat al gezet is? Of niet?

  15. #45
    Welke code had je gebruikt om die rechten te vragen?
    De gebruiker moet doormiddel van een Switch aan te zetten toestemming geven.



    Met deze Code:
    Code:
    var
     LIntent: JIntent;
     LUri: Jnet_Uri;
    begin
     LUri := TJnet_Uri.JavaClass.fromParts(StringToJString('package'), TAndroidHelper.Context.getPackageName, nil);
     LIntent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_APPLICATION_DETAILS_SETTINGS, LUri);
     LIntent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
     TAndroidHelper.Context.startActivity(LIntent);
    end;
    Krijg je dit scherm "App-Info" (dat hier een stukje naar onder is geschoven):
    Click image for larger version. 

Name:	1.jpg 
Views:	9 
Size:	69.2 KB 
ID:	8266

    Daarin klik je op "Bovenop weergeven", en krijg je dit scherm:

    Click image for larger version. 

Name:	2.jpg 
Views:	8 
Size:	52.9 KB 
ID:	8267

    Daar kan de Switch Aan/Uit geschakeld worden.

    Wat ik wil afvragen is of deze Switch Aan of Uit staat.
    Last edited by MMSoft; 20-Sep-22 at 20:49.

Page 3 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
  •