android文件选择器
时间: 2023-09-11 11:04:24 浏览: 70
Android中可以使用系统提供的文件选择器来让用户选择文件。以下是一个简单的示例:
1. 添加权限
在AndroidManifest.xml文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
2. 创建Intent
```java
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
```
3. 启动选择器
```java
startActivityForResult(Intent.createChooser(intent, "Select a File to Upload"), FILE_SELECT_CODE);
```
4. 获取选择的文件
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case FILE_SELECT_CODE:
if (resultCode == RESULT_OK) {
// 获取选中的文件
Uri uri = data.getData();
String path = FileUtils.getPath(this, uri);
// 处理文件
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
```
其中,`FileUtils.getPath()`是一个工具类方法,用于获取文件的实际路径。
```java
public class FileUtils {
public static String getPath(Context context, Uri uri) {
if ("content".equalsIgnoreCase(uri.getScheme())) {
String[] projection = { "_data" };
Cursor cursor = null;
try {
cursor = context.getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow("_data");
if (cursor.moveToFirst()) {
return cursor.getString(column_index);
}
} catch (Exception e) {
e.printStackTrace();
}
}
else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}
return null;
}
}
```
这样就可以实现一个简单的文件选择器了。