打開指定路徑
傳入的路徑格式為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);