安卓打开自带的文件夹管理(指定路径)

打开指定路径

传入的路径格式为path为andriod文件管理里的路径,直接传在文件管理器中的路径即可.

如果是通过context.getExternalFilesDir(null)获取的路径需要删除前面的/storage/emulated/0

private final String EXTERNAL_STORAGE_DIR = "/storage/emulated/0";

    /**

    * 跳转到指定文件夹

    *

    * @param absolutePath 文件夹路径

    */

    public void openSpecifyFolder(@NonNull Context activity, @NonNull String absolutePath) {

        String path;

        if (isExternalStoragePath(absolutePath)) {

            path = buildPath(absolutePath);

        } else {

            path = absolutePath.replace("/", "%2f");

        }

      Uri uri = Uri.parse("content://com.android.externalstorage.documents/document/primary:"

                + path);

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

        intent.setType("*/*");

        intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, uri);

        //返回以后获得uri把它转换成内存卡地址就能读取想要的文件了

        activity.startActivityForResult(intent, 1223);

    }


    private String buildPath(String absolutePath) {

        return absolutePath

                .substring(EXTERNAL_STORAGE_DIR.length())

                .replace("/", "%2f");

    }

    private boolean isExternalStoragePath(String path) {

        return path.startsWith(EXTERNAL_STORAGE_DIR);

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容