// 回调码
private final static int FILE_RESULT_CODE = 400;
private final File file;
开始选择文件
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); // 意图:文件浏览器
intent.setType("*/*");//无类型限制
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); // 关键!多选参数为true
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent, FILE_RESULT_CODE);
选择文件完成后在 onActivityResult() 中回调
if (resultCode == RESULT_OK && requestCode == FILE_RESULT_CODE) {
if (data.getData() != null) {
// 单次点击未使用多选的情况
try {
Uri uri = data.getData();
// uri转换成file
String[] arr = {MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(uri, arr, null, null, null);
int img_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String img_path = cursor.getString(img_index);
file = new File(img_path);
} catch (Exception e) { }
}else{
//长按使用多选的情况
ClipData clipData = data.getClipData();
if (clipData != null) {
Uri[] uris = new Uri[clipData.getItemCount()];
for (int i = 0; i < clipData.getItemCount(); i++) {
ClipData.Item item = clipData.getItemAt(i);
Uri uri = item.getUri();
//TODO 对获得的uri做解析,这部分在另一篇文章讲解
//String path = getPath(getApplicationContext(),uri);
//routers.add(path);
uris[i]=uri;
}
}
}
}