J'utilise ce code pour utiliser Intent pour sélectionner n'importe quel type de fichier et obtenir son chemin dans mon application
//this when button click
public void onBrowse(View view) {
Intent chooseFile;
Intent intent;
chooseFile = new Intent(Intent.ACTION_GET_CONTENT);
chooseFile.addCategory(Intent.CATEGORY_OPENABLE);
chooseFile.setType("file/*");
intent = Intent.createChooser(chooseFile, "Choose a file");
startActivityForResult(intent, ACTIVITY_CHOOSE_FILE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) return;
String path = "";
if(requestCode == ACTIVITY_CHOOSE_FILE)
{
Uri uri = data.getData();
String FilePath = getRealPathFromURI(uri); // should the path be here in this string
System.out.print("Path = " + FilePath);
}
}
public String getRealPathFromURI(Uri contentUri) {
String [] proj = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query( contentUri, proj, null, null,null);
if (cursor == null) return null;
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
le problème lorsque le navigateur de fichiers est ouvert, je ne peux pas sélectionner un fichier, il semble qu'il ne soit pas activé lorsque j'ai appuyé sur un fichier, rien ne s'est passé, alors quel est le problème avec ce code
je télécharge une capture d'écran de mon Android mobile
image
Merci d'avance
le type d'un fichier est .txt
Utilisez ensuite text/plain
Comme type MIME. Comme Ian Lake l'a noté dans un commentaire, file/*
N'est pas un type MIME valide.
Au-delà de cela, supprimez getRealPathFromURI()
(qui ne fonctionnera pas). Il n'y a pas de chemin, au-delà du Uri
lui-même. Vous pouvez lire le contenu identifié par ce Uri
en appelant openInputStream()
sur un ContentResolver
, et vous pouvez obtenir un ContentResolver
en appelant getContentResolver()
sur votre Activity
.
Changez de ligne:
chooseFile.setType("file/*");
à
chooseFile.setType( "*/ *");
Cela vous aidera à choisir n'importe quel type de fichier.
Esperons que ça marche.