Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), GET_FILE_CODE);

Uruchamiam Intent do wyboru plików. Po wykonaniu zadania, odpala mi się onActivityResult.

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == GET_FILE_CODE && resultCode == RESULT_OK) {
            Log.i("Select", "OK");
            Uri uri = data.getData();
            String dir = Environment.getExternalStorageDirectory() + uri.getPath();
            File file = new File(dir);
            Log.i("IntentData", "String: " + data.getDataString() + "\nUri: " + uri.getPath() +
                    "\nDir: " + dir + "\nExists: " + file.exists() +
                    "\nExternal Storage" + Environment.getExternalStorageDirectory());
        }
    }

Niestety plik nie istnieje. W jaki sposób pobrać jego prawidłową ścieżkę (bo o to pewnie chodzi)? Może jest jakiś inny sposób, który znacie? Zastanawiałem się nad stworzeniem Activity, który odpowiadałby za eksploatora, ale myślę, że to przesada.