Wie erhalte ich den tatsächlichen Pfad mit ACTION_OPEN_DOCUMENT_TREE Intent?

Meine App lädt eine Datei in einem bestimmten Ordner herunter und entpackt sie:

output = new FileOutputStream(realpath, true);
output.write(buffer, 0, bytesRead);

ZipFile zipFile = new ZipFile(realpath);

it dem neu eingeführtenACTION_OPEN_DOCUMENT_TREE Absicht, ich möchte dem Benutzer anbieten, diesen Ordner auszuwählen.

Wenn die in meinem @ empfangenen Werte getestet werdonActivityResult, Ich erhalte einen Pfad wie/tree/primary:mynewfolder, das ist nicht der physikalische Weg wie/sdcard/mynewfolder.

Uri treeUri = data.getData();
String sPath = treeUri.getPath();
Log.v("Path from Tree ", sPath);

Meine Entpackungsmethode benötigt den richtigen Pfad:

ZipFile zipFile = new ZipFile(realpath);

Wie bekomme ich den richtigen Pfad wie/sdcard/mynewfolder von der bereitgestellten URI in Lollipop (API 21 & 22)?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage