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 graphiques Android Discussion :

Ouvrir un fichier avec un intent


Sujet :

Composants graphiques Android

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut Ouvrir un fichier avec un intent
    Bonjour, voila je cherche une solution pour pouvoir ouvrir un fichier ( en l’occurrence un .csv) avec un intent.

    jusqu’à ici j'ai réussi a ouvrir mon dossier et a sélectionner mon fichier avec ce code ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
           // String App = "com.microsoft.office.excel";
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath()
                    + "/android/data/ch.srvinfo.interfire.interfire/files/");
            intent.setDataAndType(uri, "text/csv");
            startActivity(Intent.createChooser(intent, "com.microsoft.office.excel"));
    mais je voudrait que une fois le fichier sélectionner il soit ouvert sur excel... existe il une solution pour ce que je souhaite faire?

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2013
    Messages : 21
    Points : 25
    Points
    25
    Par défaut action view
    Bonjour
    à mon avis il faut que tu regardes vers intent et action view pour spécifier une application pour ouvrir le fichier.
    Je te conseille de jeter un coupe d'oeil par là :
    http://stackoverflow.com/questions/1...-via-an-intent
    Bon courage

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Salut et merci pour ta réponse, alors pour uniquement ouvrir un fichier je m'en sort mais j'ai mal formulé ma question,

    je voudrait sur un onclick choisir et ensuite ouvrir le fichier sélectionner...

    donc sélectionner le fichier j'y arrive, ouvrir un fichier spécifique j'y arrive également, mais je voudrait sur un seul clique choisir puis ouvrir le fichier choisi et la je ne m'en sort plus ;-)

    voici mon code qui ne fonctionne pas...

    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
        public void InterOK(View v) {
            Intent fichier = new Intent(Intent.ACTION_GET_CONTENT);
            Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath()
                    + "/android/data/ch.srvinfo.interfire.interfire/files/");
            fichier.setDataAndType(uri, "text/csv");
          //  fichier.setDataAndType(uri, "*/*");
            startActivity(Intent.createChooser(fichier, "com.microsoft.office.excel"));
     
            // startActivity(Intent.createChooser(fichier, "selectionner votre fichier avec:"));
            Uri selectionner = fichier.getData();
            uri.getPath ();
     
     
     
     
            Intent target = new Intent(Intent.ACTION_VIEW);
           // target.setDataAndType(Uri.fromFile(file),"application/pdf");
            target.setData(fichier.getData());
            target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
     
            Intent intent = Intent.createChooser(target, "Open File");
            try {
                startActivity(intent);
            } catch (ActivityNotFoundException e) {
     
            }
     
     
     
        }
    aurais tu une idée?

    merci d'avance.

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    je fait de l'avance, déjà je n'arrive pas a récuperer le chemain du fichier selectionner par l'utilisateur dans min intent action_get_data

    en contrôlent le contenue de ma variable Uri avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    Log.d("Debug", String.valueOf(uri));
    j'ai le chemin juste mais sans le fichier sélectionner (08-19 15:58:46.119 8310-8310/ch.srvinfo.interfire.interfire D/Debug: Intent { act=android.intent.action.GET_CONTENT dat=/storage/emulated/0/android/data/ch.srvinfo.interfire.interfire/files/ typ=text/csv })

    donc je pense que j'ai déjà un problème a ce niveau la..

    est ce que vous auriez une idée?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2013
    Messages : 21
    Points : 25
    Points
    25
    Par défaut on activity result
    si tu veux combiner des actions sans être obligé de démarrer une activité à chaque fois tu as la méthode onActivityresult qui te permet de faire une action à la fin de l'activité.
    ça fonctionne comme un intent mais ça ne lance pas d'emblée une nouvelle activité.
    je te mets un exemple que je viens d'utiliser pour parser un fichier .csv stocké sur GoogleDrive.
    J'espère que ça t'aidera.
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data){
     
            switch (requestCode){
                case REQUEST_CODE_OPENER:
                    if(resultCode==RESULT_OK){
     
     
                        DriveId driveId = data.getParcelableExtra(
                                OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);
                        DriveFile file = driveId.asDriveFile();
     
     
     
                    file.open(mGoogleApiClient, DriveFile.MODE_READ_ONLY, null)
                            .setResultCallback(new ResultCallback<DriveApi.DriveContentsResult>()
     
                            {
     
                                @Override
                                public void onResult(DriveApi.DriveContentsResult result) {
                                if(!result.getStatus().isSuccess()){
     
                                    return;
                                }
     
     
                                    DriveContents driveContents = result.getDriveContents();
     
                                    BufferedReader reader = new BufferedReader(new InputStreamReader(driveContents.getInputStream()));
                                    StringBuilder builder = new StringBuilder();
                                    String line;
     
                                    try {
     
                                        while ((line = reader.readLine())!=null){
                                            builder.append(line+"\n");
     
     
                                        }
     
     
                                    } catch (IOException e) {
                                        e.printStackTrace();
                                    }
     
                                    String contents = builder.toString();
                                    Intent intent = new Intent(getApplicationContext(), Main2Activity.class);
                                    intent.putExtra("test", contents);
                                    startActivity(intent);
     
                                }
     
     
                            });
     
     
                        }
     
                    finish();
                    break;
                default:
                    super.onActivityResult(requestCode, resultCode, data);
            }
        }

  6. #6
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    @filoman tu est un chef merci beaucoup!!

    sujet résolut!

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

Discussions similaires

  1. Ouvrir un fichier avec son programme
    Par aliwassem dans le forum Delphi
    Réponses: 1
    Dernier message: 21/10/2006, 21h26
  2. ouvrir un fichier avec la fonction Filesearch
    Par sofiane06 dans le forum Général VBA
    Réponses: 11
    Dernier message: 04/08/2006, 12h14
  3. Comment ouvrir un fichier avec AppWIZARD
    Par orj30754 dans le forum MFC
    Réponses: 1
    Dernier message: 24/05/2006, 17h24
  4. ouvrir un fichier avec son application
    Par aliwassem dans le forum Langage
    Réponses: 11
    Dernier message: 02/02/2006, 16h57
  5. Ouvrir un fichier avec une appli déjà lancée
    Par Cameleon45 dans le forum Langage
    Réponses: 5
    Dernier message: 04/01/2006, 17h42

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