Je suis en train de télécharger des fichiers sur le serveur de mon application. L'utilisateur est autorisé à attacher le fichier à partir de son stockage interne. Mais certains comment le chemin que je reçois d'un téléphone Nougat est différent de la norme /storage/emulated/0/...
. dans quelques téléphones je reçois external_files/...
et dans d'autres je reçois root_files/storage/999/....
. Dans ce cas, je ne reçois pas le bon chemin du fichier. Comment gérons-nous ce scénario?Joindre des fichiers et de télécharger sur le serveur - Android Nougat
Mon code:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Uri selectedImageUri = data.getData();
String filePath = data.getData().getPath();
File sourceFile = new File(fileFields.get(i).getFileName());
FileInputStream fileInputStream = new FileInputStream(sourceFile);
}
}
Pouvez-vous s'il vous plaît me donner un exemple? J'ai essayé d'utiliser 'ContentResolver' mais j'ai obtenu' NPE' sur 'cursor.moveToFirst()' –
@SahanaPrabhakar: Ma réponse n'implique pas 'Cursor'. J'ai dit d'appeler 'openInputStream()'. 'openInputStream()' ne retourne pas de 'Cursor'. 'openInputStream()' renvoie un 'InputStream'. Ainsi, 'getContentResolver(). OpenInputStream (selectedImageUri)' vous donne un 'InputStream' sur le contenu identifié par' Uri'. – CommonsWare