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 :

Définir le nom du fichier dans l'exemple ShareSheet d'Embarcadéro [Android]


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseigant en EPS et responsable informatique d'un établissement scolaire à la retraite.
    Inscrit en
    Octobre 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseigant en EPS et responsable informatique d'un établissement scolaire à la retraite.
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 78
    Par défaut Définir le nom du fichier dans l'exemple ShareSheet d'Embarcadéro
    Bonjour à toutes et à tous et bonne année,

    Je cherche à utiliser l'exemple 'ShareSheet' mise à disposition par Embarcadero pour une utilisation sur tablette Androïd.
    L'exemple fonctionne très bien. Je voudrais l'utiliser pour envoyer une image vers Google Drive. Quand je lance le partage, le nom de l'image est défini aléatoirement, peux-t-on le définir par programmation.

    Nom : Capture.PNG
Affichages : 332
Taille : 16,2 Ko

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 607
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Je n'ai malheureusement pas le temps de tester, juste de tenter de donner une piste.
    On peut obtenir le message Android TMessageReceivedImagePath
    à partir de là en suivant la piste dans les sources, dans FMX.PlatForm.Androïd, il y a cette fonction onReceiveImagePath(ARequestCode: Integer; AFileName: JString); qui semblerait convenir pour donner un nom d'image précis.
    Déduction peut-être hasardeuse : si AFileName est doté d'un nom précis peut-être que le nom de l'image pour l'envoi sera le bon ?
    AMHA procedure TShareSheetForm.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap); serait la procédure à améliorer

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseigant en EPS et responsable informatique d'un établissement scolaire à la retraite.
    Inscrit en
    Octobre 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseigant en EPS et responsable informatique d'un établissement scolaire à la retraite.
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 78
    Par défaut
    Bonsoir et merci SergioMaster pour cette réponse.
    Je vais explorer en espérant que je m'en sorte.

    Bien cordialement
    A bientôt

  4. #4
    Membre confirmé
    Homme Profil pro
    Enseigant en EPS et responsable informatique d'un établissement scolaire à la retraite.
    Inscrit en
    Octobre 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseigant en EPS et responsable informatique d'un établissement scolaire à la retraite.
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 78
    Par défaut
    Re bonsoir,

    J'ai modifié temporairement la procédure 'TFMXNativeActivityListener.onReceiveImagePath(ARequestCode: Integer; AFileName: JString)'
    comme ceci :
    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
    procedure TFMXNativeActivityListener.onReceiveImagePath(ARequestCode: Integer; AFileName: JString);
    var
      Message: TMessageReceivedImagePath;
    begin
      TThread.Queue(nil, procedure
      var
        ImageFileName: string;
      begin
        ImageFileName := JStringToString(AFileName);
        ImageFileName := 'essai.png';
        Message := TMessageReceivedImagePath.Create(ImageFileName);
        Message.RequestCode := ARequestCode;
        TMessageManager.DefaultManager.SendMessage(nil, Message);
      end);
    end;
    Juste pour voir si le nom 'essai.png' est utilisé.
    Cela ne change rien !

    J'ai mis un point d'arrêt pour vérifier l'exécution de la procédure au moment du partage, elle n'est pas exécutée.

    Si vous voyez autre chose plus pertinent (pour tester ou utiliser une autre piste) je suis preneur.

    Merci d'avance.

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseigant en EPS et responsable informatique d'un établissement scolaire à la retraite.
    Inscrit en
    Octobre 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseigant en EPS et responsable informatique d'un établissement scolaire à la retraite.
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 78
    Par défaut
    Bonjour à tous,

    Bon je suppose que ce problème est plus complexe qu'il n'y paraît. Je laisse ouverte cette discussion et continue à explorer. Je reviendrais vers vous si je trouve une solution.

    Bien cordialement.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 607
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Une autre piste à explorer : les intents, c'est en revoyant la couverture de mes livres "Delphi Cookbook" (editions 1,2,3) que je me suis remémoré ça !

    Ok, le lien ne parle bien évidement pas de Delphi mais montre bien
    Code KOTLIN : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    val shareIntent: Intent = Intent().apply {
        action = Intent.ACTION_SEND
        putExtra(Intent.EXTRA_STREAM, uriToImage)  // <<<<<< ICI 
        type = "image/jpeg"
    }
    startActivity(Intent.createChooser(shareIntent, resources.getText(R.string.send_to)))
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Intent shareIntent = new Intent();
    shareIntent.setAction(Intent.ACTION_SEND);
    shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);  // <<<<< ICI
    shareIntent.setType("image/jpeg");
    startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));
    que le nom du fichier n'est pas forcément "gravé dans le marbre". De toute façon même un nom "aléatoire" doit bien venir de quelque part non ?

    Du coup, en cherchant dans les sources (merci grepsearch de GExpert) j'ai retrouvé (en cherchant EXTRA_STREAM ) le seul fichier qui y faisait référence FMX.MediaLibrary.Android.pas

    ligne 249 : procedure TSharingManagerAndroid.AddImage(var AIntent: JIntent; const AImage: TBitmap);...
    ligne 260 : ImageFile := TJFile.JavaClass.createTempFile(StringToJString('attachment'), StringToJString('.png'), OutputDir); // le voilà le fameux nom !...
    Voilà donc la nouvelle piste ouverte, YAPLUKA

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

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Réponses: 4
    Dernier message: 10/04/2008, 22h23
  3. Réponses: 1
    Dernier message: 15/11/2007, 13h51
  4. Noms de colonne dans une colonne
    Par Digirom dans le forum Langage SQL
    Réponses: 14
    Dernier message: 23/04/2004, 11h51
  5. Réponses: 4
    Dernier message: 10/10/2003, 18h04

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