Je voudrais démarrer un intentchooser pour les applications qui peuvent renvoyer n'importe quel type de fichier
J'utilise actuellement (que j'ai copié à partir du code source de l'e-mail Android pour la pièce jointe)
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
Intent i = Intent.createChooser(intent, "File");
startActivityForResult(i, CHOOSE_FILE_REQUESTCODE);
Mais il ne montre que "Galerie" et "Lecteur de musique" sur mon Galaxy S2. Il y a un explorateur de fichiers sur cet appareil et je voudrais qu'il apparaisse dans la liste. Je voudrais également que l'application appareil photo apparaisse dans la liste, afin que l'utilisateur puisse prendre une photo et l'envoyer via mon application. Si j'installe le gestionnaire de fichiers Astro, il répondra également à cette intention. Mes clients sont uniquement propriétaires de Galaxy SII et je ne veux pas les forcer à installer le gestionnaire de fichiers Astro étant donné qu'ils disposent déjà d'un gestionnaire de fichiers basique mais suffisant.
Une idée de comment je pourrais y parvenir? Je suis presque sûr d'avoir déjà vu le gestionnaire de fichiers par défaut apparaître dans un tel menu pour choisir un fichier, mais je ne me souviens pas dans quelle application.
la source
Réponses:
Pas pour l'appareil photo mais pour d'autres fichiers.
Dans mon appareil, j'ai
ES File Explorer
installé et cette chose fonctionne simplement dans mon cas.la source
onActivityResult()
- Vous pouvez obtenirUri
du fichier.PICKFILE_RESULT_CODE
devrait êtrePICKFILE_REQUEST_CODE
.L'explorateur de fichiers Samsung a besoin non seulement d'une action personnalisée ( com.sec.android.app.myfiles.PICK_DATA ), mais également d'une partie de catégorie (Intent. CATEGORY_DEFAULT ) et de type mime doit être passé en supplément.
Vous pouvez également utiliser cette action pour ouvrir plusieurs fichiers: com.sec.android.app.myfiles.PICK_DATA_MULTIPLE Quoi qu'il en soit, voici ma solution qui fonctionne sur Samsung et d'autres appareils:
Cette solution fonctionne bien pour moi et sera peut-être utile pour quelqu'un d'autre.
la source
ce travail pour moi sur la galaxie note ses contacts de spectacle, les gestionnaires de fichiers installés sur l'appareil, la galerie, le lecteur de musique
voici le chemin
onActivityResult
de l'activité.la source
Cela me donne le meilleur résultat:
la source
Il s'avère que l'explorateur de fichiers Samsung utilise une action personnalisée. C'est pourquoi je pouvais voir l'explorateur de fichiers Samsung lors de la recherche d'un fichier à partir des applications Samsung, mais pas de la mienne.
L'action est "com.sec.android.app.myfiles.PICK_DATA"
J'ai créé un sélecteur d'activité personnalisé qui affiche les activités filtrant les deux intentions.
la source
Si vous voulez savoir cela, il existe une bibliothèque open source appelée aFileDialog qu'il s'agit d'un petit et facile à utiliser qui fournit un sélecteur de fichiers.
La différence avec les bibliothèques d'un autre sélecteur de fichiers pour Android est que aFileDialog vous donne la possibilité d'ouvrir le sélecteur de fichiers en tant que boîte de dialogue et en tant qu'activité.
Il vous permet également de sélectionner des dossiers, de créer des fichiers, de filtrer des fichiers à l'aide d'expressions régulières et d'afficher des boîtes de dialogue de confirmation.
la source
Les autres réponses ne sont pas incorrectes. Cependant, il existe maintenant plus d'options pour ouvrir les fichiers. Par exemple, si vous souhaitez que l'application dispose d'un accès permanent à long terme à un fichier, vous pouvez utiliser à la
ACTION_OPEN_DOCUMENT
place. Reportez-vous à la documentation officielle: Ouvrez les fichiers à l'aide du cadre d'accès au stockage . Reportez- vous également à cette réponse .la source