Pourquoi ne l'a recommandé `getExternalStorageState()` pour remplacer obsolète `getExternalStorageDirectory()` ne pas fonctionner correctement?

0

La question

Problème: Lorsque j'utilise le recommandé getExternalStorageState() pour remplacer l'obsolète getExternalStorageDirectory(), le remplacement conseillé retourne le mauvais chemin. J'ai découvert le problème lors de la FileInputStream s'est écrasé, ce qui n'existait pas auparavant.

Ce qui suit est obsolète, mais renvoie correctement: /storage/emulated/0/Download/alaina.jpg

return Environment.getExternalStorageDirectory().toString() + "/Download/" + fileName;

Ce qui suit est recommandé et retours: mounted/download/alaina.jpg

return Environment.getExternalStorageState() + "/Download/" + fileName;

Ce que j'ai fait: j'ai importé et l'utilisation de la classe RealPathUtil par tatocaster trouvé ici et il fonctionne très bien. Toutefois, certaines méthodes de la Environment et MediaStore utilisés sont désormais obsolète. L'utilisation de getExternalStorageState() a été recommandé par les mises en garde. Je vais généralement nettoyer les avertissements et l'utilisation des recommandations et c'est la première à cause d'un problème.

L'émulateur emplacement:

enter image description here

1

La meilleure réponse

2

Lorsque j'utilise le recommandé getExternalStorageState() pour remplacer l'obsolète getExternalStorageDirectory(),

Qui n'a pas de sens tant que vous ne peut pas les comparer les uns avec les autres.

L'un offre un chemin d'accès au fichier. L'autre état.

Pas besoin d'utiliser getExternalStorageState (), car il renvoie toujours l'état monté.

Depuis des années il y a toujours de stockage externe disponible.

Méthode getExternalStorageDirectory() fonctionne et est undeprecated il y a une semaine.

2021-11-23 20:10:39

Merci. Vous êtes de droite, qui n'a pas de sens. Je ne pense pas que cela a été recommandé par le biais de l'IDE, je pense que j'ai mal lu une source sur le getExternalStorageState() et interprétation erronée. Cependant, il renvoie toujours déconseillé, mais je vais juste revenir et de le quitter. Encore une fois, merci.
svstackoverflow

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................