android系统文件选择获取真实路径
时间: 2024-10-03 20:00:45 浏览: 43
在Android中,当用户从系统的文件选择器(如ACTION_GET_CONTENT或ACTION_OPEN_DOCUMENT)选取文件后,返回的是一个ContentResolver解析后的Uri而不是文件的真实路径。为了获取真实路径,你需要通过ContentProvider查询文件信息。以下是步骤:
1. 初始化ContentResolver和选择器请求:
```java
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*"); // 或者其他你想要的文件类型
startActivityForResult(intent, REQUEST_CODE_SELECT_FILE);
```
2. 接收结果并在 onActivityResult 中处理:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_SELECT_FILE && resultCode == RESULT_OK) {
Uri selectedUri = data.getData();
try {
// 获取真实路径
String filePath = DocumentsContract.getDocumentId(selectedUri);
filePath = Environment.getExternalStorageDirectory() + "/" + filePath;
// 这里filePath就是你所需的文件真实路径
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这里要注意,如果文件在设备内部存储(非SD卡),则需要使用`getDocumentsDir()`方法代替`Environment.getExternalStorageDirectory()`。
阅读全文