IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

FMX Comment savoir si une permission (Android) a déjà été accordée ? [Android]


Sujet :

Composants FMX Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 35
    Points : 26
    Points
    26
    Par défaut FMX Comment savoir si une permission (Android) a déjà été accordée ?
    Bonjour a tous
    J'ai besoin sous Delphi 10.4 de connaitre si une permission Android a déjà été accordée ?
    J'ai trouvé ce code sur un forum mais j'ai des messages d'erreurs que je n'arrive pas a corriger
    Si quelqu'un a une idée ce serait top
    Merci merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    unit Unit1;
     
    interface
     
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
      Androidapi.JNI.JavaTypes,
      Androidapi.JNI.Os,
      Androidapi.Jni.Support,
      Androidapi.Helpers, FMX.Controls.Presentation, FMX.StdCtrls;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.fmx}
    {$R *.LgXhdpiPh.fmx ANDROID}
    {$R *.LgXhdpiTb.fmx ANDROID}
    {$R *.NmXhdpiPh.fmx ANDROID}
    {$R *.SmXhdpiPh.fmx ANDROID}
    {$R *.XLgXhdpiTb.fmx ANDROID}
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       if (TJContextCompat.JavaClass.checkSelfPermission(
           TAndroidHelper.Activity, TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION) =
          TJPackageManager.JavaClass.PERMISSION_GRANTED)
          then Showmessage('Permission Fine Location deja accordée')
          else Showmessage('Permission Fine Location non accordée');
    end;
     
    end.
    J'ai les erreurs suivantes

    E2003 Identificateur non déclaré : TJPackageManager a la ligne 35
    E2029 ')' attendue mais Identificateur JavaClass trouvé a la ligne 35
    E2029 ';' attendu mais fin de fichier trouvé à la ligne 41

    Comment et ou déclarer le TJPackageManager ?

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Dans un code 10.3 trouvé sur cette page, les uses référencent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    uses
      Androidapi.JniBridge,
      Androidapi.Jni,
      Androidapi.Jni.Os,
      Androidapi.Helpers,
      ...
    Il semble t'en manquer, mais je ne sais pas s'ils sont nécessaires...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 35
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Bonjour,

    Dans un code 10.3 trouvé sur cette page, les uses référencent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    uses
      Androidapi.JniBridge,
      Androidapi.Jni,
      Androidapi.Jni.Os,
      Androidapi.Helpers,
      ...
    Il semble t'en manquer, mais je ne sais pas s'ils sont nécessaires...
    Merci à toi mais malheureusement rajouter ces uses n'a pas réglé le prob mais je vais aller voir ton article

  4. #4
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par pierrejean75 Voir le message
    Bonjour a tous
    J'ai besoin sous Delphi 10.4 de connaitre si une permission Android a déjà été accordée ?
    J'ai trouvé ce code sur un forum mais j'ai des messages d'erreurs que je n'arrive pas a corriger
    ouch, c'est pas du récent ça

    tout est dans l'unité System.Permissions

    tu peux utiliser les exemples fournis avec Delphi pour copier coller le code qui t'intéresse en fonction des permissions utiles.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 35
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par pprem Voir le message
    ouch, c'est pas du récent ça

    tout est dans l'unité System.Permissions

    tu peux utiliser les exemples fournis avec Delphi pour copier coller le code qui t'intéresse en fonction des permissions utiles.
    Merci mais ce n'est pas ma question, je sais demander les permissions, la ce dont j'ai besoin c'est de pouvoir tester si une permission a déjà été accordée ou non
    Car pour contourner le beug sur l'autorisation de localisation... (l'autorisation ne s'active que quelques secondes apres avoir été accordée)....je mets un timer de 3 secondes
    Ce que je voudrais c est pouvoir faire que ce Timer ne se declenche que si l'autorisation n'a pas encore été accordée

    Donc j'ai besoin de savoir si l'autorisation a deja été accordée par l'utilisateur lors d'un lancement précédent du programme ou si elle vient d etre accordée par l'utilisateur

  6. #6
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par pierrejean75 Voir le message
    Merci mais ce n'est pas ma question, je sais demander les permissions, la ce dont j'ai besoin c'est de pouvoir tester si une permission a déjà été accordée ou non
    Car pour contourner le beug sur l'autorisation de localisation... (l'autorisation ne s'active que quelques secondes apres avoir été accordée)....je mets un timer de 3 secondes
    Ce que je voudrais c est pouvoir faire que ce Timer ne se declenche que si l'autorisation n'a pas encore été accordée

    Donc j'ai besoin de savoir si l'autorisation a deja été accordée par l'utilisateur lors d'un lancement précédent du programme ou si elle vient d etre accordée par l'utilisateur
    de la même manière qu'on fait un appel pour demander les permissions, on peut les interroger avec IsPermissionGranted()

  7. #7
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Et pendant que je parle de permissions, ne vous embêtez pas à tester si vous êtes sur Android ou pas, System.Permission donne les droits par défaut si vous n'êtes pas sur Android, donc inutile de s'embêter à faire du code pour Android séparé du code pour iOS/macOS/Windows/Linux. Celui d'Android fonctionne partout. Le conditionnement par compilateur proposé dans les exemples et sur des sources qu'on trouve sur le net n'est pas une obligation.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 35
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par pprem Voir le message
    de la même manière qu'on fait un appel pour demander les permissions, on peut les interroger avec IsPermissionGranted()
    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [URL] Comment savoir si une URL existe?
    Par jse dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 07/10/2004, 15h33
  2. [JScrollPane]Comment savoir quand une scrollbar apparait ?
    Par FrigoAcide dans le forum Composants
    Réponses: 4
    Dernier message: 29/04/2004, 10h10
  3. Comment savoir si une impression s'est bien déroulé?
    Par Cyrilh7 dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/11/2003, 20h49
  4. Comment savoir qu'une fonction est standard ?
    Par D[r]eadLock dans le forum C
    Réponses: 5
    Dernier message: 24/03/2003, 14h42
  5. Réponses: 4
    Dernier message: 10/09/2002, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo