得到FileProvider返回后的URI,后续处理
来源:互联网 发布:软件登记证书查询 编辑:程序博客网 时间:2024/06/15 20:29
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent data) {
// TODO Auto-generated method stub
if (resultCode != RESULT_OK) {
tvFileContent.setText("未成功获得文件" );
tvFileName.setText("未成功获得文件" );
} else {
readFile(data.getData());
}
}
private void readFile(Uri returnUri) {
Context context = getActivity();
ParcelFileDescriptor inputPFD;
//获取文件句柄
try {
inputPFD = context.getContentResolver().openFileDescriptor(returnUri, "r" );
} catch (FileNotFoundException e) {
e.printStackTrace();
tvFileContent.setText("获取文件句柄失败" );
tvFileName.setText("获取文件句柄失败" );
return;
}
//获取文件名字和大小
Cursor returnCursor =
context.getContentResolver().query(returnUri, null, null , null, null);
/*
* Get the column indexes of the data in the Cursor,
* move to the first row in the Cursor, get the data,
* and display it.
*/
int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
returnCursor.moveToFirst();
tvFileName.setText("文件名:" +returnCursor.getString(nameIndex)+", 大小:"+
Long. toString(returnCursor.getLong(sizeIndex))+" B");
returnCursor.close();
//读取文件内容
String content = "";
FileReader fr = null;
char[] buffer = new char[1024];
try {
StringBuilder strBuilder = new StringBuilder();
fr = new FileReader(inputPFD.getFileDescriptor());
while (fr.read(buffer) != -1) {
strBuilder.append(buffer);
}
fr.close();
content = strBuilder.toString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (content.length() != 0) {
tvFileContent.setText(content);
} else {
tvFileContent.setText("<内容空>" );
}
try {
inputPFD.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void onActivityResult(int requestCode, int resultCode,
Intent data) {
// TODO Auto-generated method stub
if (resultCode != RESULT_OK) {
tvFileContent.setText("未成功获得文件" );
tvFileName.setText("未成功获得文件" );
} else {
readFile(data.getData());
}
}
private void readFile(Uri returnUri) {
Context context = getActivity();
ParcelFileDescriptor inputPFD;
//获取文件句柄
try {
inputPFD = context.getContentResolver().openFileDescriptor(returnUri, "r" );
} catch (FileNotFoundException e) {
e.printStackTrace();
tvFileContent.setText("获取文件句柄失败" );
tvFileName.setText("获取文件句柄失败" );
return;
}
//获取文件名字和大小
Cursor returnCursor =
context.getContentResolver().query(returnUri, null, null , null, null);
/*
* Get the column indexes of the data in the Cursor,
* move to the first row in the Cursor, get the data,
* and display it.
*/
int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
returnCursor.moveToFirst();
tvFileName.setText("文件名:" +returnCursor.getString(nameIndex)+", 大小:"+
Long. toString(returnCursor.getLong(sizeIndex))+" B");
returnCursor.close();
//读取文件内容
String content = "";
FileReader fr = null;
char[] buffer = new char[1024];
try {
StringBuilder strBuilder = new StringBuilder();
fr = new FileReader(inputPFD.getFileDescriptor());
while (fr.read(buffer) != -1) {
strBuilder.append(buffer);
}
fr.close();
content = strBuilder.toString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (content.length() != 0) {
tvFileContent.setText(content);
} else {
tvFileContent.setText("<内容空>" );
}
try {
inputPFD.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
阅读全文
0 0
- 得到FileProvider返回后的URI,后续处理
- ubuntu12.04 安装后的后续处理
- 得到.crash 后的处理
- 得到system执行后的返回值
- Spring Security 2 登录后的后续处理
- Uri权限问题&&FileProvider学习
- New URI()可以自动处理Encode后的URL String
- 得到新打开Activity 关闭后返回的数据
- 得到新打开Activity 关闭后返回的数据
- 得到新打开Activity 关闭后返回的数据
- 得到新打开Activity 关闭后返回的数据
- 得到新打开Activity 关闭后返回的数据
- data.getData()返回的Uri
- android 4.4版本以上系统相册图片返回URI的不同处理
- 上传完成后的后续操作
- java得到此时此刻的2个半小时后的时间,返回一个Date类型
- android 之得到新打开Activity 关闭后返回的数据
- 9.1、Android中得到新打开Activity 关闭后返回的数据
- 据说,很多程序员都没看过这些......
- 2017.12.21
- 前端京东案例总体思路
- mybatis学习笔记
- python 元组 字典 列表的区别
- 得到FileProvider返回后的URI,后续处理
- vuejs实现升级无缝轮播图效果
- ajax上传JSON格式的多维数组的方法
- NDK重新编译so库
- PIC心得(1)
- PHPStorm汉化
- 2017-12-21 作业2
- 12.16
- 数据结构实验之查找二:平衡二叉树